TITLE ' /* IRBMFINP - MF/1 INPUT/MERGE CONTROL *00001000 ' 00002000 MACRO 00003000 &MFSNAME MFSYSTR &INITIAL,&ALTLST,&RCALTLS 00004000 AGO .BEGIN 00005000 */********************************************************************/ 00006000 */* MODULE NAME = MFSYSTR */ 00007000 */* */ 00008000 */* DESCRIPTIVE NAME = MF/1 SYNTAX TABLE STRUCTURE ENTRY */ 00009000 */* */ 00010000 */* COPYRIGHT = NONE */ 00011000 */* */ 00012000 */* STATUS = RELEASE 2, VERSION 0 */ 00013000 */* */ 00014000 */* FUNCTION = EXECUTABLE MACRO FOR THE SYNTAX TABLE (MFSYNTAB). */ 00015000 */* IT DESCRIBES A STRUCTURE ENTRY. (SEE METHOD OF INVOCA-*/ 00016000 */* TION.) */ 00017000 */* */ 00018000 */* NOTES = NONE */ 00019000 */* */ 00020000 */* MODULE TYPE = BAL EXECUTABLE MACRO */ 00021000 */* */ 00022000 */* CHANGE ACTIVITY = SEE BELOW */ 00023000 */* A000000-999999 Y02150*/ 00024000 */* */ 00025000 */* MACCOMP Y-2 SC1CQ/GAM20 */ 00026000 */* */ 00027000 */* MACMEAN MFSYSTR MEANS MF/1 SYNTAX TABLE STRUCTURE ENTRY */ 00028000 */* */ 00029000 */* METHOD OF INVOCATION */ 00030000 */* BAL - MFSYSTR A,B,C */ 00031000 */* WHERE */ 00032000 */* A -'1' INDICATES INITIAL STRUCTURE */ 00033000 */* '0' OTHERWISE */ 00034000 */* B -ADDRESS OF A LIST OF ALTERNATIVE ENTRIES (REGULAR)*/ 00035000 */* C -ADDRESS OF A LIST OF RECURSIVE ALTERNATIVES */ 00036000 */* */ 00037000 */* PLS - NONE */ 00038000 */********************************************************************/ 00039000 .BEGIN ANOP 00040000 */* MACDATE Y-2 73026 */ 00041000 AIF (NOT ('&INITIAL' EQ '1' AND '&RCALTLS' NE '0')).A 00042000 &MFSNAME DC X'C0' . INITIAL STRUCTURE WITH RECURSIVE 00043000 * ALTERNATIVES 00044000 AGO .D 00045000 .A AIF (NOT ('&INITIAL' EQ '1' AND '&RCALTLS' EQ '0')).B 00046000 &MFSNAME DC X'80' . INITIAL STRUCTURE - NOT RECURSIVE 00047000 AGO .D 00048000 .B AIF (NOT ('&INITIAL' NE '1' AND '&RCALTLS' NE '0')).C 00049000 &MFSNAME DC X'40' . RECURSIVE ALTERNATIVES EXIST 00050000 AGO .D 00051000 .C AIF (NOT ('&INITIAL' NE '1' AND '&RCALTLS' EQ '0')).D 00052000 &MFSNAME DC X'00' . NOT INITIAL STRUCUTRE - NO RECURSIVE 00053000 * ALTERNATIVES 00054000 .D ANOP 00055000 DC AL3(0) . RESERVED 00056000 DC A(&ALTLST) . ALTERNATIVE LIST ADDRESS 00057000 DC A(&RCALTLS) . RECURSIVE ALTERNATIVE 00058000 MEND 00059000 MACRO 00060000 &MFANAME MFSYALT &ENDLST,&ITMLST,&INITRTN,&INITPRM 00061000 AGO .BEGIN 00062000 */********************************************************************/ 00063000 */* MODULE NAME = MFSYALT */ 00064000 */* */ 00065000 */* DESCRIPTIVE NAME = MF/1 SYNTAX TABLE ALTERNATIVE ENTRY */ 00066000 */* */ 00067000 */* COPYRIGHT = NONE */ 00068000 */* */ 00069000 */* STATUS = RELEASE 2, LEVEL 0 */ 00070000 */* */ 00071000 */* FUNCTION = EXECUTABLE MACRO FOR THE SYNTAX TABLE (MFSYNTAB). */ 00072000 */* IT DESCRIBES AN ALTERNATIVE ENTRY. (SEE METHOD OF */ 00073000 */* INVOCATION */ 00074000 */* */ 00075000 */* NOTES = NONE */ 00076000 */* */ 00077000 */* MODULE TYPE = EXECUTABLE MACRO (BAL) */ 00078000 */* */ 00079000 */* CHANGE ACTIVITY = SEE BELOW */ 00080000 */* A000000-999999 Y02150*/ 00081000 */* */ 00082000 */* MACCOMP Y-2 SC1CQ/GAM20 */ 00083000 */* */ 00084000 */* MACMEAN MFSYALT MEANS MF/1 SYNTAX TABLE ALTERNATIVE ENTRY */ 00085000 */* */ 00086000 */* METHOD OF INVOCATION */ 00087000 */* BAL - MFSYALT A,B,C,D */ 00088000 */* WHERE */ 00089000 */* A - '1' INDICATES END OF ALTERNATIVES LIST */ 00090000 */* '0' OTHERWISE */ 00091000 */* B - ADDRESS OF AN ITEM ENTRY */ 00092000 */* C - ADDRESS OF AN INITIALIZATION ROUTINE OR ZERO */ 00093000 */* D - ADDRESS OF A PARAMETER LIST TO BE PASSED TO THE */ 00094000 */* INITIALIZATION ROUTINE */ 00095000 */* */ 00096000 */* PLS - NONE */ 00097000 */********************************************************************/ 00098000 .BEGIN ANOP 00099000 */* MACDATE Y-2 73026 */ 00100000 AIF (NOT ('&ENDLST' EQ '1' AND '&INITRTN' NE '0')).A 00101000 &MFANAME DC X'C0' . END OF LIST AND INITIALIZATION 00102000 * ROUTINE EXISTS 00103000 AGO .D 00104000 .A AIF (NOT ('&ENDLST' EQ '1' AND '&INITRTN' EQ '0')).B 00105000 &MFANAME DC X'80' . END OF LIST 00106000 AGO .D 00107000 .B AIF (NOT ('&ENDLST' NE '1' AND '&INITRTN' NE '0')).C 00108000 &MFANAME DC X'40' . INITIALIZATION ROUTINE EXISTS 00109000 AGO .D 00110000 .C AIF (NOT ('&ENDLST' NE '1' AND '&INITRTN' EQ '0')).D 00111000 &MFANAME DC X'00' . NOT END OF LIST - NO INITIALIZATION 00112000 * ROUTINE EXISTS 00113000 .D ANOP 00114000 DC AL3(0) . RESERVED 00115000 DC A(&ITMLST) . ADDRESS OF AN ITEM LIST 00116000 DC A(&INITRTN) . INITIALIZATION RTN ADDRESS 00117000 DC A(&INITPRM) . ADDRESS OF A PARAMETER LIST 00118000 * FOR INITIALIZATION ROUTINE 00119000 MEND 00120000 MACRO 00121000 &MFINAME MFSYITM &ENDLST,&RECGNZR,&TRMDEF,&RCGPARM 00122000 AGO .BEGIN 00123000 */********************************************************************/ 00124000 */* MODULE NAME = MFSYITM */ 00125000 */* */ 00126000 */* DESCRIPTIVE NAME = MF/1 SYNTAX TABLE ITEM ENTRY */ 00127000 */* */ 00128000 */* COPYRIGHT = NONE */ 00129000 */* */ 00130000 */* STATUS = RELEASE 2, LEVEL 0 */ 00131000 */* */ 00132000 */* FUNCTION = EXECUTABLE MACRO FOR MF/1 SYNTAX TABLE (MFSYNTAB). */ 00133000 */* */ 00134000 */* NOTES = NONE */ 00135000 */* */ 00136000 */* MODULE TYPE = BAL EXECUTABLE MACRO */ 00137000 */* */ 00138000 */* CHANGE ACTIVITY = SEE BELOW */ 00139000 */* A000000-999999 Y02150*/ 00140000 */* */ 00141000 */* MACCOMP Y-2 SC1SQ/GAM20 */ 00142000 */* */ 00143000 */* MACMEAN MFSYITM MEANS MF/1 SYNTAX TABLE ITEM ENTRY */ 00144000 */* */ 00145000 */* METHOD OF INVOCATION */ 00146000 */* BAL - MFSYITM A,B,C,D */ 00147000 */* WHERE */ 00148000 */* A - '1' INDICATES END OF ITEM LIST */ 00149000 */* '0' OTHERWISE */ 00150000 */* B - ADDRESS OF A RECOGNIZER ROUTINE OR A STRUCTURE */ 00151000 */* ENTRY */ 00152000 */* C - '1' INDICATES ITEM ENTRY IS A TERMINAL TYPE */ 00153000 */* '0' INDICATES ITEM ENTRY IS A STRUCTURE TYPE */ 00154000 */* D - ADDRESS OF A PARAMETER LIST TO BE PASSED TO THE */ 00155000 */* RECOGNIZE ROUTINE OR 0. */ 00156000 */* */ 00157000 */* PLS - NONE */ 00158000 */********************************************************************/ 00159000 .BEGIN ANOP 00160000 */* MACDATE Y-2 73026 */ 00161000 AIF (NOT ('&ENDLST' EQ '1' AND '&TRMDEF' EQ '1')).A 00162000 &MFINAME DC X'C0' . END OF LIST AND ITEM IS 00163000 * TERMINAL TYPE 00164000 AGO .D 00165000 .A AIF (NOT ('&ENDLST' EQ '1' AND '&TRMDEF' NE '1')).B 00166000 &MFINAME DC X'80' END OF LIST 00167000 AGO .D 00168000 .B AIF (NOT ('&ENDLST' NE '1' AND '&TRMDEF' EQ '1')).C 00169000 &MFINAME DC X'40' ITEM IS TERMINAL TYPE 00170000 AGO .D 00171000 .C AIF (NOT ('&ENDLST' NE '1' AND '&TRMDEF' NE '1')).D 00172000 &MFINAME DC X'00' NOT END OF LIST AND ITEM IS 00173000 * DEFINED TYPE 00174000 .D ANOP 00175000 DC AL3(0) . RESERVED 00176000 DC A(&RECGNZR) . ADDRESS OF A RECOGNIZER 00177000 * OR STRUCTURE ENTRY 00178000 DC A(&RCGPARM) . ADDRESS OF A PARAMETER LIST 00179000 * PASSED TO RECOGNIZER ROUTINE 00180000 MEND 00181000 IRBMFINP CSECT , 0002 00182000 @MAINENT DS 0H 0002 00183000 USING *,@15 0002 00184000 B @PROLOG 0002 00185000 DC AL1(16) 0002 00186000 DC C'IRBMFINP 74.107' 0002 00187000 DROP @15 00188000 @PROLOG STM @14,@12,12(@13) 0002 00189000 BALR @08,0 0002 00190000 @PSTART LA @09,4095(,@08) 0002 00191000 LA @11,4095(,@09) 0002 00192000 LA @12,4095(,@11) 0002 00193000 USING @PSTART,@08 0002 00194000 USING @PSTART+4095,@09 0002 00195000 USING @PSTART+8190,@11 0002 00196000 USING @PSTART+12285,@12 0002 00197000 L @00,@SIZDATD 0002 00198000 GETMAIN R,LV=(0) 00199000 LR @10,@01 0002 00200000 USING @DATD,@10 0002 00201000 ST @13,@SA00001+4 0002 00202000 LM @00,@01,20(@13) 0002 00203000 ST @10,8(,@13) 0002 00204000 LR @13,@10 0002 00205000 XC @ZTEMPS(@ZLEN),@ZTEMPS 00206000 MVC @PC00001(12),0(@01) 0002 00207000 * 0039 00208000 */* INITIALIZE ANALYZER CONTROL BLOCKS */ 00209000 * 0040 00210000 * INBCBNAM='BCB '; /* ACRONYM */ 00211000 MVC INBCBNAM(4),@CC00944 0040 00212000 * INBCBFRS=0; /* NO ELEMENTS IN QUEUE */ 00213000 SR @15,@15 0041 00214000 ST @15,INBCBFRS 0041 00215000 * INBCBLST=ADDR(INBCBFRS); /* INITIAL CONDITION */ 00216000 LA @14,INBCBFRS 0042 00217000 ST @14,INBCBLST 0042 00218000 * INCURBCB=ADDR(INBCBFRS); /* INITIAL CONDITION */ 00219000 ST @14,INCURBCB 0043 00220000 * INTXTCUR=0; /* NO TEXT EXIST */ 00221000 ST @15,INTXTCUR 0044 00222000 * INBYTLFT=0; /* INITIAL CONDITION */ 00223000 ST @15,INBYTLFT 0045 00224000 * INEXTSRC='0'B; /* EXTERNAL TEXT SOURCE */ 00225000 * 0046 00226000 NI INEXTSRC,B'01111111' 0046 00227000 */* INTEGER VECTOR TABLE INITIALIZATION */ 00228000 * 0047 00229000 * ININTPTR(1)=ADDR(SYPRMV01); 0047 00230000 * 0047 00231000 LA @14,SYPRMV01 0047 00232000 ST @14,ININTPTR 0047 00233000 */* ERROR VECTOR TABLE INITIALIZATION */ 00234000 * 0048 00235000 * INERRPTR(1)=ADDR(INCOXER2); 0048 00236000 * 0048 00237000 LA @14,INCOXER2 0048 00238000 ST @14,INERRPTR 0048 00239000 */* ALPHA VECTOR TABLE INITIALIZATION */ 00240000 * 0049 00241000 * INALPPTR(1)=ADDR(SYPRMA01); 0049 00242000 LA @14,SYPRMA01 0049 00243000 ST @14,INALPPTR 0049 00244000 * 0050 00245000 * /*****************************************************************/ 00246000 * /* */ 00247000 * /* STATIC TO AUTOMATIC MACRO LIST INITIALIZATION */ 00248000 * /* */ 00249000 * /*****************************************************************/ 00250000 * 0050 00251000 * INEXTCIB=INEXCIB; /* MOVE STATIC PARM LIST TO AUTO 00252000 * PARM LIST */ 00253000 MVC INEXTCIB(12),INEXCIB 0050 00254000 * INMEMLIB=INSTCLIB; /* STATIC DCB MOVE TO AUTO DCB */ 00255000 MVC INMEMLIB(88),INSTCLIB 0051 00256000 * INOPNADC=INOPNSDC; /* STATIC OPEN PARM LIST MOVED TO 00257000 * AUTO OPEN PARM LIST */ 00258000 MVC INOPNADC(4),INOPNSDC 0052 00259000 * INMSGDCB=INSTCDCB; /* STATIC MSG DCB MOVED TO AUTO 00260000 * MSG DCB */ 00261000 MVC INMSGDCB(96),INSTCDCB 0053 00262000 * INCLOSEA=INCLOSE; /* STATIC CLOSE LIST MOVED TO 0054 00263000 * AUTO CLOSE LIST */ 00264000 MVC INCLOSEA(4),INCLOSE 0054 00265000 * INAUMOPN=INMSGOPN; /* STATIC PARMLIST MOVE TO AUTO. 00266000 * PARM LIST */ 00267000 MVC INAUMOPN(4),INMSGOPN 0055 00268000 * INARDMAC=INRDMAC; /* MOVE STATIC LIST INTO AUTO ONE*/ 00269000 MVC INARDMAC(20),INRDMAC 0056 00270000 * 0057 00271000 * /*****************************************************************/ 00272000 * /* */ 00273000 * /* GENERAL INITIALIZATION */ 00274000 * /* */ 00275000 * /*****************************************************************/ 00276000 * 0057 00277000 * INEXTSRC='1'B; /* INTERNAL SOURCE */ 00278000 OI INEXTSRC,B'10000000' 0057 00279000 * INEOFBIT='0'B; /* END OF FILE BIT */ 00280000 NI INEOFBIT,B'01111111' 0058 00281000 * INDDNAME='MF1INPUT'; /* MSG DATASET DD NAME */ 00282000 MVC INDDNAME(8),@CC00946 0059 00283000 * INMDCBAD=ADDR(INMSGDCB); /* ADDRESS OF DCB */ 00284000 LA @14,INMSGDCB 0060 00285000 ST @14,INMDCBAD 0060 00286000 * INOPNERR='0'B; /* OPEN ERROR BIT */ 00287000 NI INOPNERR,B'01111111' 0061 00288000 * INMPREFX='IRBMF1'; /* MEMBER NAME PREFIX */ 00289000 MVC INMPREFX(6),@CC00947 0062 00290000 * INREPLEN=LENGTH(INREPTXT); /* LENGTH OF REPLY TEXT */ 00291000 MVC INREPLEN(2),@CH00823 0063 00292000 * INMRGFIN='0'B; /* INDICATE MERGE IN PROGRESS */ 00293000 NI INMRGFIN,B'01111111' 0064 00294000 * IN304PRT=0; /* NOT A MESSAGE PART */ 00295000 STH @15,IN304PRT 0065 00296000 * IN304LEN=0; /* NO TEXT SUPPLIED */ 00297000 * 0066 00298000 STH @15,IN304LEN 0066 00299000 */* INITIALIZE MVT (TEMPORARY ONE ) */ 00300000 * 0067 00301000 * DO I=1 TO MFMVNUM; 0067 00302000 LA @15,1 0067 00303000 B @DE00067 0067 00304000 @DL00067 DS 0H 0068 00305000 * INMVADD(I)=ADDR(TMPMA(I)); 0068 00306000 LR @14,@15 0068 00307000 SLA @14,2 0068 00308000 LR @07,@15 0068 00309000 MH @07,@CH00584 0068 00310000 LA @07,TMPMA-12(@07) 0068 00311000 ST @07,INMVADD-4(@14) 0068 00312000 * END; 0069 00313000 AH @15,@CH00065 0069 00314000 @DE00067 ST @15,I 0069 00315000 L @14,@PC00001+4 0069 00316000 C @15,MFMVNUM(,@14) 0069 00317000 BNH @DL00067 0069 00318000 * INMODULE='IRBMFMPR'; 0070 00319000 MVC INMODULE(8),@CC00949 0070 00320000 * RESPECIFY 0071 00321000 * (GPR00P, 0071 00322000 * GPR01P, 0071 00323000 * GPR14P, 0071 00324000 * GPR15F)RSTD; 0071 00325000 * GENERATE; 0072 00326000 * /* LOAD IRBMFMPR */ 00327000 LOAD EPLOC=INMODULE 00328000 * INMSGADR=GPR00P; /* SAVE ITS ADDRESS */ 00329000 ST GPR00P,INMSGADR 0073 00330000 * RESPECIFY 0074 00331000 * (GPR00P, 0074 00332000 * GPR01P, 0074 00333000 * GPR14P, 0074 00334000 * GPR15F)UNRSTD; 0074 00335000 * 0074 00336000 * /*****************************************************************/ 00337000 * /* */ 00338000 * /* FUNCTIONAL CODE. */ 00339000 * /* */ 00340000 * /*****************************************************************/ 00341000 * 0075 00342000 * RFY 0075 00343000 * (GPR01F, 0075 00344000 * GPR00F)RSTD; 0075 00345000 * GEN; 0076 00346000 L @01,INSZDADR ADDRESS OF SIZDATD 00347000 L @01,0(@01) ACTUAL SIZE OF ANL SIZDATD 00348000 * INGMWORD=GPR01F*(INMXRCUR); /* CALCULATE ANL STORAGE SIZE */ 00349000 LR @15,GPR01F 0077 00350000 MH @15,@CH00091 0077 00351000 ST @15,INGMWORD 0077 00352000 * GEN; 0078 00353000 L @00,INGMWORD SET UP REG 0 FOR GETMAIN 00354000 GETMAIN R,LV=(0) 00355000 * INAUTPTR=GPR01P; /* GET PTR TO AREA */ 00356000 ST GPR01P,INAUTPTR 0079 00357000 * INAUTSAV=INAUTPTR; /* SAVE PTR TO AREA FOR FREEING */ 00358000 L @15,INAUTPTR 0080 00359000 ST @15,INAUTSAV 0080 00360000 * RFY 0081 00361000 * (GPR01F, 0081 00362000 * GPR00F)UNRSTD; 0081 00363000 * 0081 00364000 * /*****************************************************************/ 00365000 * /* */ 00366000 * /* THE 1ST SOURCE OF INPUT WITH HIGHEST PRIORITY IS THE DATA FROM*/ 00367000 * /* THE START COMMAND PARM FIELD. THIS FIELD CAN OVERRIDE ANY */ 00368000 * /* PRESET OPTION VALUE. THE CODE TO PROCESS IT FOLLOWS. */ 00369000 * /* */ 00370000 * /*****************************************************************/ 00371000 * 0082 00372000 * INCOXSRC=INSTRTPM; /* INDICATE START PARMS BEING 0082 00373000 * PROCESSED */ 00374000 NI INCOXSRC,B'11100111' 0082 00375000 * RFY 0083 00376000 * (GPR00F, 0083 00377000 * GPR01P, 0083 00378000 * GPR14P, 0083 00379000 * GPR15P)RSTD; 0083 00380000 * GENERATE(EXTRACT INEXTLST,,FIELDS=(COMM),MF=(E,INEXTCIB)); 0084 00381000 EXTRACT INEXTLST,,FIELDS=(COMM),MF=(E,INEXTCIB) 00382000 * RFY 0085 00383000 * (GPR00F, 0085 00384000 * GPR01P, 0085 00385000 * GPR14P, 0085 00386000 * GPR15P)UNRSTD; 0085 00387000 * IF CIBPTR^=0 THEN /* IF STARTED BY CONSOLE COMMAND 00388000 * @YM5633P*/ 00389000 SR @15,@15 0086 00390000 L @01,INEXTLST 0086 00391000 L @14,CIBPTR(,@01) 0086 00392000 CR @14,@15 0086 00393000 BE @RF00086 0086 00394000 * DO; /* @YM5633P*/ 00395000 * IF CIBDATLN>0 THEN /* WERE ANY PARMS SPECIFIED? */ 00396000 CH @15,CIBDATLN(,@14) 0088 00397000 BNL @RF00088 0088 00398000 * DO; 0089 00399000 * CALL MFBUFENQ(CIBDATA,EVAL(CIBDATLN),INSCB);/* CREATE A 00400000 * BUFFER AND BCB */ 00401000 LA @15,CIBDATA(,@14) 0090 00402000 ST @15,@AL00001 0090 00403000 LH @15,CIBDATLN(,@14) 0090 00404000 ST @15,@AFTEMPS+20 0090 00405000 LA @15,@AFTEMPS+20 0090 00406000 ST @15,@AL00001+4 0090 00407000 LA @15,INSCB 0090 00408000 ST @15,@AL00001+8 0090 00409000 LA @01,@AL00001 0090 00410000 BAL @14,MFBUFENQ 0090 00411000 * CALL MFSRCPRO(INFORCE); /* PROCESS START PARMS */ 00412000 LA @01,@AL00091 0091 00413000 BAL @14,MFSRCPRO 0091 00414000 * END; 0092 00415000 * END; /* @YM5633P*/ 00416000 * 0093 00417000 @RF00088 DS 0H 0094 00418000 * /*****************************************************************/ 00419000 * /* */ 00420000 * /* THE NEXT HIGHEST PRIORITY SOURCE IS THE EXEC STMT PARM FIELD */ 00421000 * /* OF THE PROCEDURE INVOKED BY STARTING MF/1. CODE TO PROCESS IT */ 00422000 * /* FOLLOWS */ 00423000 * /* */ 00424000 * /*****************************************************************/ 00425000 * 0094 00426000 * INCOXSRC=INEXECPM; /* INDICATE EXEC STMT PARM FIELD 00427000 * BEING PROCESSED */ 00428000 @RF00086 NI INCOXSRC,B'11101111' 0094 00429000 OI INCOXSRC,B'00001000' 0094 00430000 * IF INEXLENG>0 THEN /* ANY PARMS ON EXEC STMT? */ 00431000 L @15,@PC00001 0095 00432000 LH @14,INEXLENG(,@15) 0095 00433000 LTR @14,@14 0095 00434000 BNP @RF00095 0095 00435000 * DO; 0096 00436000 * CALL MFBUFENQ(INEXPARM,EVAL(INEXLENG),INSCB);/* CREATE A 0097 00437000 * BUFFER AND BCB */ 00438000 LA @14,INEXPARM(,@15) 0097 00439000 ST @14,@AL00001 0097 00440000 LH @15,INEXLENG(,@15) 0097 00441000 ST @15,@AFTEMPS+20 0097 00442000 LA @15,@AFTEMPS+20 0097 00443000 ST @15,@AL00001+4 0097 00444000 LA @15,INSCB 0097 00445000 ST @15,@AL00001+8 0097 00446000 LA @01,@AL00001 0097 00447000 BAL @14,MFBUFENQ 0097 00448000 * CALL MFSRCPRO(INFORCE); /* PROCESS EXEC PARMS */ 00449000 LA @01,@AL00098 0098 00450000 BAL @14,MFSRCPRO 0098 00451000 * END; 0099 00452000 * 0099 00453000 * /*****************************************************************/ 00454000 * /* */ 00455000 * /* THIS NEXT SOURCE IS THE IEFRDER DATA SET (IRBMF1NN, WHERE NN */ 00456000 * /* IS THE MEMBER NUMBER DEFINED BY 'MEMBER(NN)' OPTION) IF THE */ 00457000 * /* MEMBER OPTION HAS NOT BEEN SPECIFIED THE DEFAULT MEMBER */ 00458000 * /* IRBMF100 WILL BE USED. */ 00459000 * /* */ 00460000 * /*****************************************************************/ 00461000 * 0100 00462000 * INCOXSRC=INLIBRDS; /* INDICATE LIBRARY MEMBER BEING 00463000 * PROCESSED */ 00464000 @RF00095 NI INCOXSRC,B'11110111' 0100 00465000 OI INCOXSRC,B'00010000' 0100 00466000 * INEXTSRC=INEXSRCE; /* EXTERNAL INPUT SOURCE */ 00467000 NI INEXTSRC,B'01111111' 0101 00468000 * IF MFCOMEMC=INOPTSPC THEN /* WAS MEMBER OPTION SPECIFIED */ 00469000 L @15,@PC00001+8 0102 00470000 TM MFCOMEMC(@15),B'10000000' 0102 00471000 BNZ @RF00102 0102 00472000 * INMEMNUM=MFCOMEMV; /* YES, MOVE IN MEMEBER NO. */ 00473000 MVC INMEMNUM(2),MFCOMEMV(@15) 0103 00474000 * ELSE /* MEMBER NO. NOT SPECIFIED SO */ 00475000 * DO; 0104 00476000 B @RC00102 0104 00477000 @RF00102 DS 0H 0105 00478000 * INMEMNUM='00'; /* DEFAULT MEMBER */ 00479000 MVC INMEMNUM(2),@CC00951 0105 00480000 * MFCOMEMV='00'; /* INDICATE DEFAULT MEMBER */ 00481000 L @15,@PC00001+8 0106 00482000 MVC MFCOMEMV(2,@15),@CC00951 0106 00483000 * MFCOMEMC=INOPTSPC; /* IN PERMANENT COA */ 00484000 NI MFCOMEMC(@15),B'01111111' 0107 00485000 * END; 0108 00486000 * INVTXLST(1)=ADDR(IN304LST); /* VARIABLE TEXT LIST 1 */ 00487000 @RC00102 LA @15,IN304LST 0109 00488000 ST @15,INVTXLST 0109 00489000 * INVTXLST(2)=ADDR(IN304LST); /* VARIABLE TEXT LIST 2 */ 00490000 ST @15,INVTXLST+4 0110 00491000 * RFY 0111 00492000 * (GPR00F, 0111 00493000 * GPR01P, 0111 00494000 * GPR14P, 0111 00495000 * GPR15P)RSTD; 0111 00496000 * GENERATE SETS(INMEMLIB,INOPNADC); 0112 00497000 * /* OPEN IEFRDER DD DATASET */ 00498000 OPEN (INMEMLIB,(INPUT)),MF=(E,INOPNADC) 00499000 * DCBPTR=ADDR(INMEMLIB); /* INITIALIZE DCB POINTER */ 00500000 LA @07,INMEMLIB 0113 00501000 ST @07,DCBPTR 0113 00502000 * DCBEXLSA=0; /* CLEAR EXIT LIST ADDRESS */ 00503000 LA @06,DCBIOBAD+16(,@07) 0114 00504000 SR @05,@05 0114 00505000 ST @05,@TF00001 0114 00506000 MVC DCBEXLSA(3,@06),@TF00001+1 0114 00507000 * IF DCBOFOPN^='1'B THEN /* OPEN FAILURE? */ 00508000 TM DCBOFOPN+40(@07),B'00010000' 0115 00509000 BO @RF00115 0115 00510000 * DO; 0116 00511000 * CALL INMSGMOD(MID304I,INVTXLST,0,0);/* ISSUE I/O ERROR MSG */ 00512000 MVC @AL00001(16),@AL00117 0117 00513000 LA @07,INVTXLST 0117 00514000 ST @07,@AL00001+4 0117 00515000 L @15,INMSGADR 0117 00516000 LA @01,@AL00001 0117 00517000 BALR @14,@15 0117 00518000 * GOTO INDEFALT; /* PROCESS PROGRAM DEFAULTS */ 00519000 B INDEFALT 0118 00520000 * END; 0119 00521000 * GENERATE REFS(INMEMLIB,INMEMNAM); 0120 00522000 @RF00115 DS 0H 0120 00523000 FIND INMEMLIB,INMEMNAM,D /* FIND MF/1 MEMBER */ 00524000 * IF GPR15F=04 THEN /* MEMBER NAME NOT FOUND? */ 00525000 CH GPR15F,@CH00254 0121 00526000 BNE @RF00121 0121 00527000 * DO; /* BUILD MESSAGE IRB302I PARM 0122 00528000 * LIST */ 00529000 * IN302NUM=0; /* VARIABLE TEXT TO BE SUPPLIED 00530000 * BY THIS CALLER */ 00531000 SR @07,@07 0123 00532000 STH @07,IN302NUM 0123 00533000 * IN302LEN=LENGTH(MFCOMEMV); /* LENGTH OF VARIABLE TEXT BEING 00534000 * SUPPLIED */ 00535000 MVC IN302LEN(2),@CH00078 0124 00536000 * IN302TXT=MFCOMEMV; /* MEMBER NUMBER-VARIABLE TEXT */ 00537000 L @07,@PC00001+8 0125 00538000 MVC IN302TXT(2),MFCOMEMV(@07) 0125 00539000 * INVTXLST(1)=ADDR(IN302LST); /* VARIABLE TEXT LIST */ 00540000 * 0126 00541000 LA @07,IN302LST 0126 00542000 ST @07,INVTXLST 0126 00543000 * /*************************************************************/ 00544000 * /* */ 00545000 * /* CALL MESSAGE MODULE TO ISSUE MSG IRB302I */ 00546000 * /* */ 00547000 * /*************************************************************/ 00548000 * 0127 00549000 * CALL INMSGMOD(MID302I,INVTXLST,0,0); 0127 00550000 MVC @AL00001(16),@AL00127 0127 00551000 LA @07,INVTXLST 0127 00552000 ST @07,@AL00001+4 0127 00553000 L @15,INMSGADR 0127 00554000 LA @01,@AL00001 0127 00555000 BALR @14,@15 0127 00556000 * INCOOPIC=INOPISET; /* INDICATE OPI SPECIFIED */ 00557000 NI INCOOPIC,B'01111111' 0128 00558000 * INCOOPIV=INOPIYES; /* SET OPI OPTION VALUE TO YES */ 00559000 OI INCOOPIV,B'00000001' 0129 00560000 * END; 0130 00561000 * IF GPR15F=08 THEN /* I/O ERROR DURING FIND? */ 00562000 @RF00121 CH GPR15F,@CH00069 0131 00563000 BNE @RF00131 0131 00564000 * CALL INMSGMOD(MID304I,INVTXLST,0,0);/* ISSUE I/O ERROR MSG */ 00565000 MVC @AL00001(16),@AL00132 0132 00566000 LA @07,INVTXLST 0132 00567000 ST @07,@AL00001+4 0132 00568000 L @15,INMSGADR 0132 00569000 LA @01,@AL00001 0132 00570000 BALR @14,@15 0132 00571000 * IF GPR15F=00 THEN /* FIND WORKED O.K.? */ 00572000 @RF00131 LTR GPR15F,GPR15F 0133 00573000 BNZ @RF00133 0133 00574000 * CALL MFSRCPRO(INFORCE); /* PROCESS MEMBER DATA SET */ 00575000 LA @01,@AL00134 0134 00576000 BAL @14,MFSRCPRO 0134 00577000 * GEN(CLOSE (INMEMLIB),MF=(E,INCLOSEA)); 0135 00578000 @RF00133 DS 0H 0135 00579000 CLOSE (INMEMLIB),MF=(E,INCLOSEA) 00580000 * RFY 0136 00581000 * (GPR00F, 0136 00582000 * GPR01P, 0136 00583000 * GPR14P, 0136 00584000 * GPR15F)UNRSTD; 0136 00585000 *INDEFALT: 0137 00586000 * 0137 00587000 * /*****************************************************************/ 00588000 * /* */ 00589000 * /* CHECK FOR OPTIONS NOT SPECIFIED AND MOVE IN PROGRAM DEFAULTS. */ 00590000 * /* */ 00591000 * /*****************************************************************/ 00592000 * 0137 00593000 * INCOXSRC=INDEFLTC; /* PROGRAM DEFAULTS SOURCE BEING 00594000 * PROCESSED */ 00595000 INDEFALT OI INCOXSRC,B'00011000' 0137 00596000 * INEXTSRC=ININTSRC; /* INTERNAL INPUT SOURCE */ 00597000 OI INEXTSRC,B'10000000' 0138 00598000 * CALL MFBUFENQ(INPGMDEF,INDEFLEN,INSCB);/* BUILD A BUFFER AND BCB */ 00599000 MVC @AL00001(8),@AL00139 0139 00600000 LA @14,INSCB 0139 00601000 ST @14,@AL00001+8 0139 00602000 LA @01,@AL00001 0139 00603000 BAL @14,MFBUFENQ 0139 00604000 * CALL MFSRCPRO(INFORCE); /* PROCESS PROGRAM DEFAULTS */ 00605000 LA @01,@AL00140 0140 00606000 BAL @14,MFSRCPRO 0140 00607000 * INMRGFIN=INMRGDON; /* INDICATE MERGE COMPLETE */ 00608000 * 0141 00609000 OI INMRGFIN,B'10000000' 0141 00610000 * /*****************************************************************/ 00611000 * /* */ 00612000 * /* TO PREVENT INCONSISTENCY IN SETTING OPTION VALUES, A VALIDITY */ 00613000 * /* CHECK IS MADE BY MFVALCHK TO ENSURE CONSISTENCY */ 00614000 * /* */ 00615000 * /*****************************************************************/ 00616000 * 0142 00617000 * CALL MFVALCHK; 0142 00618000 * 0142 00619000 BAL @14,MFVALCHK 0142 00620000 * /*****************************************************************/ 00621000 * /* */ 00622000 * /* IF THE OPI OPTION WAS SET TO YES BY EXPLICIT SPECIFICATION */ 00623000 * /* FROM THE OPERATOR OR SET BY INPUT/MERGE DUE TO ERRORS OR */ 00624000 * /* INCONSISTENCY A LIST OF OPTIONS IN EFFECT IS PRINTED TO THE */ 00625000 * /* CONSOLE */ 00626000 * /* */ 00627000 * /*****************************************************************/ 00628000 * 0143 00629000 * CALL MFLISTOP; /* LIST OPTIONS IN EFFECT */ 00630000 BAL @14,MFLISTOP 0143 00631000 * RFY 0144 00632000 * (GPR00F, 0144 00633000 * GPR01P, 0144 00634000 * GPR14P, 0144 00635000 * GPR15P)RSTD; 0144 00636000 * INMODULE='IRBMFMPR'; /* IDENTIFY MESSAGE PROCESSOR. */ 00637000 MVC INMODULE(8),@CC00949 0145 00638000 * GEN(DELETE EPLOC=INMODULE); /* DELETE MESSAGE MODULE */ 00639000 DELETE EPLOC=INMODULE 00640000 * GPR00F=INGMWORD; 0147 00641000 L GPR00F,INGMWORD 0147 00642000 * GPR01P=INAUTSAV; /* GET PTR TO STORAGE GOTTEN */ 00643000 L GPR01P,INAUTSAV 0148 00644000 * GEN; 0149 00645000 FREEMAIN R,LV=(0),A=(1) FREE AUTOMATIC STORAGE 00646000 * RFY 0150 00647000 * (GPR00F, 0150 00648000 * GPR01P, 0150 00649000 * GPR14P, 0150 00650000 * GPR15P)UNRSTD; 0150 00651000 * RETURN CODE(0); /* RETURN TO MFC */ 00652000 L @13,4(,@13) 0151 00653000 L @00,@SIZDATD 0151 00654000 LR @01,@10 0151 00655000 FREEMAIN R,LV=(0),A=(1) 00656000 SR @15,@15 0151 00657000 L @14,12(,@13) 0151 00658000 LM @00,@12,20(@13) 0151 00659000 BR @14 0151 00660000 * 0152 00661000 */* PROCEDURE NAME=MFOPNERR */ 00662000 */* */ 00663000 */* DESCRIPTIVE NAME = OPEN ABEND EXIT ROUTINE */ 00664000 */* */ 00665000 */* FUNCTION = HANDLES PROCESSING UPON AN OPEN ABEND. INDICATES THAT*/ 00666000 */* THE ABEND IS TO BE IGNORED. */ 00667000 */* */ 00668000 * 0152 00669000 *MFOPNERR: 0152 00670000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA); 0152 00671000 MFOPNERR DS 0H 0153 00672000 * GENERATE; 0153 00673000 NI 3(@01),X'40' KEEP IGNORE BIT IF SET 00674000 BR @14 RETURN TO OPEN ABEND PROCESSING 00675000 * END MFOPNERR; 0154 00676000 @EL00002 DS 0H 0154 00677000 @EF00002 DS 0H 0154 00678000 @ER00002 BR @14 0154 00679000 * 0155 00680000 */* PROCEDURE NAME = MFSRCPRO */ 00681000 */* */ 00682000 */* DESCRIPTIVE NAME = MF/1 SOURCE PROCESSOR */ 00683000 */* */ 00684000 */* FUNCTION = CALLS ANALYZE ROUTINE AND CHECKS FOR ERROR AFTER EACH*/ 00685000 */* SOURCE HAS BEEN PROCESSED */ 00686000 */* */ 00687000 */* */ 00688000 * 0155 00689000 *MFSRCPRO: 0155 00690000 * PROCEDURE(SRFORCE); 0155 00691000 MFSRCPRO STM @14,@12,@SA00003 0155 00692000 MVC @PC00003(4),0(@01) 0155 00693000 * DECLARE 0156 00694000 * SRFORCE /* FORCE BIT FOR MERGE */ 00695000 * BIT(1), 0156 00696000 * SRSTRCAD /* STRUCTURE ENTRY ADDRESS EXISTS*/ 00697000 * BIT(1)CONSTANT('0'B), 0156 00698000 * 1 SRDUMITM, /* DUMMY ITEM ENTRY */ 00699000 * 2 SRIFLAGS, /* FLAGS BYTE */ 00700000 * 3 SRENDITM /* END OF LIST */ 00701000 * BIT(1), 0156 00702000 * 3 SRSTRM /* STRUCTURE OR TERMINAL */ 00703000 * BIT(1), 0156 00704000 * 3 * /* RESERVED */ 00705000 * BIT(30), 0156 00706000 * 2 SRRECSTR /* ADDRESS OF RECOGNIZER OR 0156 00707000 * STRUCTURE ENTRY */ 00708000 * PTR(31), 0156 00709000 * 2 SRIPARM /* PARMS PASSED TO RECOGNIZER */ 00710000 * PTR(31), 0156 00711000 * SRNOTSPF /* NOT SPECIFIED BIT */ 00712000 * BIT(1)CONSTANT('1'B), 0156 00713000 * SRCNTRL /* CONTROL WORD */ 00714000 * FIXED(8)CONSTANT(1), 0156 00715000 * 1 SRVTXLST, /* VARIABLE TEXT LIST */ 00716000 * 2 SRVTPNUM /* PART NUMBER - 0 */ 00717000 * FIXED(15), 0156 00718000 * 2 SRVTLEN /* LENGTH OF VARIABLE TEXT */ 00719000 * FIXED(15), 0156 00720000 * 2 SRVTEXT /* VARIABLE TEXT */ 00721000 * CHAR(INERRLEN), 0156 00722000 * SROPRATR /* INCOXSRC OPERATOR SOURCE */ 00723000 * BIT(2)CONSTANT('00'B), 0156 00724000 * SREXEC /* INCOXSRC EXEC CARD SOURCE */ 00725000 * BIT(2)CONSTANT('01'B), 0156 00726000 * SRLIBRAY /* INCOXSRC LIBRARY SOURCE */ 00727000 * BIT(2)CONSTANT('10'B), 0156 00728000 * SRNDXARY /* MESSAGE INDEX NUMBER ARRAY FOR 00729000 * LISTOP */ 00730000 * (10)FIXED(15), 0156 00731000 * SRPARTNO /* PART NUMBER VARIABLE */ 00732000 * FIXED(15); 0156 00733000 *SRSTRSCN: 0157 00734000 * INCOA=INCOA&&INCOA; /* ZERO OUT TEMPORARY COA */ 00735000 SRSTRSCN XC INCOA(32),INCOA 0157 00736000 * DO I=1 TO MAXCOMM; /* DO FOR EVERY COA */ 00737000 LA @15,1 0158 00738000 ST @15,I 0158 00739000 @DL00158 DS 0H 0159 00740000 * INCOCTRL(I)=SRNOTSPF; /* TURN ON 'NOT SPECIFIED' BIT */ 00741000 LR @14,@15 0159 00742000 SLA @14,2 0159 00743000 LA @01,INCOCTRL-4(@14) 0159 00744000 OI 0(@01),B'10000000' 0159 00745000 * END; 0160 00746000 AH @15,@CH00065 0160 00747000 ST @15,I 0160 00748000 CH @15,@CH00069 0160 00749000 BNH @DL00158 0160 00750000 * DO I=1 TO MFMVNUM; /* DO FOR EVERY PMA */ 00751000 LA @15,1 0161 00752000 B @DE00161 0161 00753000 @DL00161 DS 0H 0162 00754000 * RFY 0162 00755000 * INPMA BASED(INMVADD(I)); 0162 00756000 * INPMA=INPMA&&INPMA; /* ZERO OUT PMA */ 00757000 LR @14,@15 0163 00758000 SLA @14,2 0163 00759000 L @01,INMVADD-4(@14) 0163 00760000 XC INPMA(12,@01),INPMA(@01) 0163 00761000 * END; 0164 00762000 AH @15,@CH00065 0164 00763000 @DE00161 ST @15,I 0164 00764000 L @14,@PC00001+4 0164 00765000 C @15,MFMVNUM(,@14) 0164 00766000 BNH @DL00161 0164 00767000 * DO I=1 TO MFMVNUM; /* DO FOR EVERY PMA */ 00768000 LA @15,1 0165 00769000 B @DE00165 0165 00770000 @DL00165 DS 0H 0166 00771000 * INMVADD(I)->INPMCON=SRNOTSPF; /* OPTION NOT SPECIFIED */ 00772000 LR @14,@15 0166 00773000 SLA @14,2 0166 00774000 L @14,INMVADD-4(@14) 0166 00775000 OI INPMCON(@14),B'10000000' 0166 00776000 * IF(I-1)*LENGTH(INMVADD)=ADDR(INMVDEV)-ADDR(INMVOPT)THEN/* 0167 00777000 * DEVICE PMA? */ 00778000 BCTR @15,0 0167 00779000 SLA @15,2 0167 00780000 LA @07,INMVDEV 0167 00781000 LA @06,INMVOPT 0167 00782000 SR @07,@06 0167 00783000 CR @15,@07 0167 00784000 BNE @RF00167 0167 00785000 * INMVADD(I)->INPMDEVF(SRCNTRL)=INPMDEVC;/* NOT SET */ 00786000 MVI INPMDEVF(@14),X'FC' 0168 00787000 * END; 0169 00788000 @RF00167 LA @15,1 0169 00789000 A @15,I 0169 00790000 @DE00165 ST @15,I 0169 00791000 L @14,@PC00001+4 0169 00792000 C @15,MFMVNUM(,@14) 0169 00793000 BNH @DL00165 0169 00794000 * RFY 0170 00795000 * INPMA; 0170 00796000 * INCOXINV='0'B; /* CLEAR ALL */ 00797000 * INCOXSYN='0'B; /* ERROR FLAGS */ 00798000 NI INCOXINV,B'11111001' 0172 00799000 * SRSTRM=SRSTRCAD; /* STRUCTURE ENTRY */ 00800000 * SRENDITM='1'B; /* END OF LIST INDICATOR */ 00801000 OI SRENDITM,B'10000000' 0174 00802000 NI SRSTRM,B'10111111' 0174 00803000 * SRRECSTR=ADDR(MFSYNTAB); /* INITIAL STRUCTURE */ 00804000 LA @15,MFSYNTAB 0175 00805000 ST @15,SRRECSTR 0175 00806000 * SRIPARM=0; /* NO PARAMETERS FOR STRUCTURE */ 00807000 SR @15,@15 0176 00808000 ST @15,SRIPARM 0176 00809000 * CALL IRBMFANL(SRDUMITM,INSCB,INAUTPTR);/* SYNTAX CHECK INPUT */ 00810000 * 0177 00811000 LA @15,SRDUMITM 0177 00812000 ST @15,@AL00001 0177 00813000 LA @15,INSCB 0177 00814000 ST @15,@AL00001+4 0177 00815000 LA @15,INAUTPTR 0177 00816000 ST @15,@AL00001+8 0177 00817000 L @15,@CV00904 0177 00818000 LA @01,@AL00001 0177 00819000 BALR @14,@15 0177 00820000 * /*****************************************************************/ 00821000 * /* */ 00822000 * /* CHECK FOR INVALID VALUES, MUTUALLY EXCLUSIVE OPTIONS, OR */ 00823000 * /* SYNTAX ERRORS */ 00824000 * /* */ 00825000 * /*****************************************************************/ 00826000 * 0178 00827000 * IF INCOXINV='1'B|INCOXSYN='1'B THEN 0178 00828000 TM INCOXINV,B'00000110' 0178 00829000 BZ @RF00178 0178 00830000 * DO; 0179 00831000 * 0179 00832000 * /*************************************************************/ 00833000 * /* */ 00834000 * /* SET UP FOR MESSAGES */ 00835000 * /* */ 00836000 * /*************************************************************/ 00837000 * 0180 00838000 * IF INCOXSRC=SROPRATR THEN /* OPERATOR SOURCE */ 00839000 TM INCOXSRC,B'00011000' 0180 00840000 BNZ @RF00180 0180 00841000 * DO; 0181 00842000 * SRPARTNO=LMPART9; /* PART NO. FOR OPERATOR */ 00843000 MVC SRPARTNO(2),@CH00578 0182 00844000 * GO TO SRLAB1; /* SET UP MESSAGE */ 00845000 B SRLAB1 0183 00846000 * END; 0184 00847000 * IF INCOXSRC=SREXEC THEN /* EXEC CARD SOURCE */ 00848000 @RF00180 TM INCOXSRC,B'00001000' 0185 00849000 BNO @RF00185 0185 00850000 TM INCOXSRC,B'00010000' 0185 00851000 BNZ @RF00185 0185 00852000 * DO; 0186 00853000 * SRPARTNO=LMPART10; /* PART NO. FOR PARM */ 00854000 MVC SRPARTNO(2),@CH00580 0187 00855000 * GO TO SRLAB1; /* SET UP MESSAGE */ 00856000 B SRLAB1 0188 00857000 * END; 0189 00858000 * IF INCOXSRC=SRLIBRAY THEN /* LIBRARY SOURCE */ 00859000 @RF00185 TM INCOXSRC,B'00010000' 0190 00860000 BNO @RF00190 0190 00861000 TM INCOXSRC,B'00001000' 0190 00862000 BNZ @RF00190 0190 00863000 * DO; 0191 00864000 * SRPARTNO=LMPART11; /* PART NO. FOR LIBRARY */ 00865000 MVC SRPARTNO(2),@CH00582 0192 00866000 * GO TO SRLAB1; /* SET UP MESSAGE */ 00867000 B SRLAB1 0193 00868000 * END; 0194 00869000 * IF SRFORCE='1'B THEN /* MERGE COMPLETE - MUST BE 0195 00870000 * OPERATOR REPLY OF MORE VALUES */ 00871000 @RF00190 L @15,@PC00003 0195 00872000 TM SRFORCE(@15),B'10000000' 0195 00873000 BNO @RF00195 0195 00874000 * DO; 0196 00875000 * SRPARTNO=LMPART21; /* PART NO. FOR REPLY */ 00876000 MVC SRPARTNO(2),@CH00600 0197 00877000 * GO TO SRLAB1; /* SET UP MESSAGE */ 00878000 B SRLAB1 0198 00879000 * END; 0199 00880000 * 0199 00881000 * /*************************************************************/ 00882000 * /* */ 00883000 * /* MUST BE ERROR IN PROGRAM DEFAULTS, ABEND */ 00884000 * /* */ 00885000 * /*************************************************************/ 00886000 * 0200 00887000 * GENERATE(ABEND 1100,DUMP); 0200 00888000 @RF00195 DS 0H 0200 00889000 ABEND 1100,DUMP 00890000 *SRLAB1: 0201 00891000 * 0201 00892000 * /*************************************************************/ 00893000 * /* */ 00894000 * /* ISSUE APPROPRIATE MESSAGES */ 00895000 * /* */ 00896000 * /*************************************************************/ 00897000 * 0201 00898000 * IF INCOXINV='1'B THEN /* VALUE ERROR OR MUTUALLY 0201 00899000 * EXCLUSIVE OPTIONS */ 00900000 SRLAB1 TM INCOXINV,B'00000100' 0201 00901000 BNO @RF00201 0201 00902000 * DO; 0202 00903000 * INVTXLST(1)=ADDR(SRPARTNO); 0203 00904000 LA @15,SRPARTNO 0203 00905000 ST @15,INVTXLST 0203 00906000 * CALL INMSGMOD(MID301I,INVTXLST,0,0);/* ISSUE MESSAGE */ 00907000 MVC @AL00001(16),@AL00204 0204 00908000 LA @15,INVTXLST 0204 00909000 ST @15,@AL00001+4 0204 00910000 L @15,INMSGADR 0204 00911000 LA @01,@AL00001 0204 00912000 BALR @14,@15 0204 00913000 * END; 0205 00914000 * IF INCOXSYN='1'B THEN /* SYNTAX ERROR FOUND */ 00915000 @RF00201 TM INCOXSYN,B'00000010' 0206 00916000 BNO @RF00206 0206 00917000 * DO; 0207 00918000 * 0207 00919000 * /*********************************************************/ 00920000 * /* */ 00921000 * /* INITIALIZE VARIABLE PARTS FOR ERROR TEXT */ 00922000 * /* */ 00923000 * /*********************************************************/ 00924000 * 0208 00925000 * SRVTPNUM=0; /* TEXT FOLLOWS */ 00926000 SR @15,@15 0208 00927000 STH @15,SRVTPNUM 0208 00928000 * SRVTLEN=INERRLEN; /* LENGTH OF TEXT */ 00929000 MVC SRVTLEN(2),@CH00580 0209 00930000 * SRVTEXT=INCOXER1; /* TEXT IN ERROR */ 00931000 MVC SRVTEXT(10),INCOXER1 0210 00932000 * INVTXLST(1)=ADDR(SRVTXLST);/* VARIABLE ERROR TEXT ADDRESS*/ 00933000 LA @15,SRVTXLST 0211 00934000 ST @15,INVTXLST 0211 00935000 * INVTXLST(2)=ADDR(SRPARTNO);/* SOURCE PART IN ERROR */ 00936000 LA @15,SRPARTNO 0212 00937000 ST @15,INVTXLST+4 0212 00938000 * CALL INMSGMOD(MID300I,INVTXLST,0,0);/* ISSUE MESSAGE */ 00939000 MVC @AL00001(16),@AL00213 0213 00940000 LA @15,INVTXLST 0213 00941000 ST @15,@AL00001+4 0213 00942000 L @15,INMSGADR 0213 00943000 LA @01,@AL00001 0213 00944000 BALR @14,@15 0213 00945000 * END; 0214 00946000 * IF INCOXSRC=SROPRATR THEN /* IF SOURCE IS OPERATOR */ 00947000 @RF00206 TM INCOXSRC,B'00011000' 0215 00948000 BNZ @RF00215 0215 00949000 * DO; 0216 00950000 * 0216 00951000 * /*********************************************************/ 00952000 * /* */ 00953000 * /* WRITE MESSAGE TO REQUEST NEW OPTIONS OR 'IGNORE' */ 00954000 * /* */ 00955000 * /*********************************************************/ 00956000 * 0217 00957000 * CALL INMSGMOD(MID308A,0,INREPBUF,0); 0217 00958000 MVC @AL00001(16),@AL00217 0217 00959000 LA @15,INREPBUF 0217 00960000 ST @15,@AL00001+8 0217 00961000 L @15,INMSGADR 0217 00962000 LA @01,@AL00001 0217 00963000 BALR @14,@15 0217 00964000 * IF INREPTXT(1:6)='IGNORE' THEN/* IGNORE START PARMS */ 00965000 CLC INREPTXT(6),@CC00987 0218 00966000 BNE @RF00218 0218 00967000 * DO; /* CHECK TO SEE IF REST OF REPLY 00968000 * IS BLANK */ 00969000 * DO I=7 TO LENGTH(INREPTXT)WHILE INREPTXT(I)=' '; 0220 00970000 LA @15,7 0220 00971000 ST @15,I 0220 00972000 @DL00220 LA @14,INREPTXT-1(@15) 0220 00973000 CLI 0(@14),C' ' 0220 00974000 BNE @DC00220 0220 00975000 * END; 0221 00976000 AH @15,@CH00065 0221 00977000 ST @15,I 0221 00978000 CH @15,@CH00823 0221 00979000 BNH @DL00220 0221 00980000 @DC00220 DS 0H 0222 00981000 * IF I=LENGTH(INREPTXT)+1 THEN/* REST OF REPLY BLANK? */ 00982000 CLC I(4),@CF01488 0222 00983000 BE @RT00222 0222 00984000 * RETURN; /* RETURN TO INP */ 00985000 * END; 0224 00986000 * 0224 00987000 */* REPLY TEXT WAS NOT IGNORE. BUILD A BUFFER AND BCB */ 00988000 * 0225 00989000 * CALL MFBUFENQ(INREPTXT,EVAL(INREPLEN),INSCB); 0225 00990000 @RF00218 LA @15,INREPTXT 0225 00991000 ST @15,@AL00001 0225 00992000 LH @15,INREPLEN 0225 00993000 ST @15,@AFTEMPS 0225 00994000 LA @15,@AFTEMPS 0225 00995000 ST @15,@AL00001+4 0225 00996000 LA @15,INSCB 0225 00997000 ST @15,@AL00001+8 0225 00998000 LA @01,@AL00001 0225 00999000 BAL @14,MFBUFENQ 0225 01000000 * GO TO SRSTRSCN; /* REPROCESS */ 01001000 B SRSTRSCN 0226 01002000 * END; 0227 01003000 * 0227 01004000 * /*************************************************************/ 01005000 * /* */ 01006000 * /* SOME OPTIONS MAY HAVE BEEN ACCEPTED FROM BAD INPUT IN THIS*/ 01007000 * /* SOURCE. LIST THESE. ISSUE MF/1 OPTIONS ASSUMED FROM SOURCE*/ 01008000 * /* IN ERROR MESSAGE */ 01009000 * /* */ 01010000 * /*************************************************************/ 01011000 * 0228 01012000 * CALL INMSGMOD(MID309I1,0,0,0); 0228 01013000 * 0228 01014000 @RF00215 L @15,INMSGADR 0228 01015000 LA @01,@AL00228 0228 01016000 BALR @14,@15 0228 01017000 * /*************************************************************/ 01018000 * /* */ 01019000 * /* SET UP MSGID ARRAY */ 01020000 * /* */ 01021000 * /*************************************************************/ 01022000 * 0229 01023000 * SRNDXARY(1)=MID309I2; 0229 01024000 MVC SRNDXARY(2),@CH00632 0229 01025000 * SRNDXARY(2)=MID309I3; 0230 01026000 MVC SRNDXARY+2(2),@CH00330 0230 01027000 * SRNDXARY(3)=MID309I4; 0231 01028000 MVC SRNDXARY+4(2),@CH00635 0231 01029000 * SRNDXARY(4)=MID309I5; 0232 01030000 MVC SRNDXARY+6(2),@CH00637 0232 01031000 * SRNDXARY(5)=MID309I6; 0233 01032000 MVC SRNDXARY+8(2),@CH00639 0233 01033000 * SRNDXARY(6)=MID309I7; 0234 01034000 MVC SRNDXARY+10(2),@CH00641 0234 01035000 * SRNDXARY(7)=MID309I8; 0235 01036000 MVC SRNDXARY+12(2),@CH00643 0235 01037000 * SRNDXARY(8)=MID309I9; 0236 01038000 MVC SRNDXARY+14(2),@CH00645 0236 01039000 * SRNDXARY(9)=MID309IA; 0237 01040000 MVC SRNDXARY+16(2),@CH00647 0237 01041000 * SRNDXARY(10)=MID309IB; 0238 01042000 * 0238 01043000 MVC SRNDXARY+18(2),@CH00452 0238 01044000 * /*************************************************************/ 01045000 * /* */ 01046000 * /* LIST OPTIONS CHOSEN */ 01047000 * /* */ 01048000 * /*************************************************************/ 01049000 * 0239 01050000 * CALL LISTOP(SRNDXARY,ADDR(INCOA),ADDR(INMVT)); 0239 01051000 LA @15,SRNDXARY 0239 01052000 ST @15,@AL00001 0239 01053000 LA @15,INCOA 0239 01054000 ST @15,@AFTEMPS 0239 01055000 LA @15,@AFTEMPS 0239 01056000 ST @15,@AL00001+4 0239 01057000 LA @15,INMVT 0239 01058000 ST @15,@AFTEMPS+4 0239 01059000 LA @15,@AFTEMPS+4 0239 01060000 ST @15,@AL00001+8 0239 01061000 LA @01,@AL00001 0239 01062000 BAL @14,LISTOP 0239 01063000 * END; 0240 01064000 * 0240 01065000 * /*****************************************************************/ 01066000 * /* */ 01067000 * /* NOW MERGE OPTIONS VALUES INTO THE MFPMA AND MFCOA THAT WERE */ 01068000 * /* TEMPORARILY STORED IN THE INCOA AND INPMA DURING OPTION */ 01069000 * /* INITIALIZATION */ 01070000 * /* */ 01071000 * /*****************************************************************/ 01072000 * 0241 01073000 * CALL MFMERGE(SRFORCE); /* CALL MERGE */ 01074000 @RF00178 L @15,@PC00003 0241 01075000 ST @15,@AL00001 0241 01076000 LA @01,@AL00001 0241 01077000 BAL @14,MFMERGE 0241 01078000 * RETURN; /* RETURN TO INP */ 01079000 @EL00003 DS 0H 0242 01080000 @EF00003 DS 0H 0242 01081000 @ER00003 LM @14,@12,@SA00003 0242 01082000 BR @14 0242 01083000 * END MFSRCPRO; 0243 01084000 B @EL00003 0243 01085000 * 0244 01086000 */* PROCEDURE NAME = MFBUFENQ */ 01087000 */* */ 01088000 */* DESCRIPTIVE NAME = BUFFER ENQUEING ROUTINE */ 01089000 */* */ 01090000 */* FUNCTION = THIS ROUTINE QUEUES UP THE BCBS. EACH BCB POINTS TO */ 01091000 */* A BUFFER CONTAINING TEXT PASSED FROM CALLING ROUTINE.*/ 01092000 */* AS A RESULT OF QUEUEING BUFFERS AND BCBS, THE SCB AND*/ 01093000 */* BQCB ARE UPDATED ACCORDINGLY. */ 01094000 */* */ 01095000 */* */ 01096000 * 0244 01097000 *MFBUFENQ: 0244 01098000 * PROCEDURE(BUBUFTXT,BUBUFSZE,BUSCB); 0244 01099000 MFBUFENQ STM @14,@12,@SA00004 0244 01100000 MVC @PC00004(12),0(@01) 0244 01101000 * DECLARE 0245 01102000 * BUBUFTXT /* TEXT TO BE PLACED IN BUFFER */ 01103000 * CHAR(*), 0245 01104000 * BUBUFSZE /* LENGTH OF TEXT */ 01105000 * FIXED(31), 0245 01106000 * 1 BUSCB, /* SCAN CONTROL BLOCK */ 01107000 * 2 BUCURBCB /* CURRENT BCB PTR */ 01108000 * PTR(31), 0245 01109000 * 2 BUCURTXT /* CURRENT TEXT PTR */ 01110000 * PTR(31), 0245 01111000 * 2 BUBYTLFT /* # BYTES LEFT */ 01112000 * FIXED(31), 0245 01113000 * BUBUFARA /* PTR TO GOTTEN AREA */ 01114000 * PTR(31), 0245 01115000 * BUBUF /* BUFFER */ 01116000 * CHAR(*)BASED(BUBUFARA), 0245 01117000 * 0245 01118000 */* REGISTERS USED IN THE 'MVCL' INSTRUCTION */ 01119000 * 0245 01120000 * GPR02F REG(2)PTR(31), 0245 01121000 * GPR03F REG(3)FIXED(31), 0245 01122000 * GPR04F REG(4)PTR(31), 0245 01123000 * GPR05F REG(5)FIXED(31), 0245 01124000 * 0245 01125000 */* */ 01126000 * 0245 01127000 * 1 BUBCBCOR /* GETMAIN PARAMETERS */ 01128000 * BDY(WORD), 0245 01129000 * 2 BUSUBPOL /* SUBPOOL */ 01130000 * FIXED(8), 0245 01131000 * 2 BUBUFLEN /* LENGTH */ 01132000 * FIXED(24), 0245 01133000 * BUBCBARA /* PTR TO GOTTEN AREA FOR BCB */ 01134000 * PTR(31); 0245 01135000 * 0245 01136000 * /*****************************************************************/ 01137000 * /* */ 01138000 * /* GET CORE FOR A BCB */ 01139000 * /* */ 01140000 * /*****************************************************************/ 01141000 * 0246 01142000 * BUSUBPOL=0; 0246 01143000 MVI BUSUBPOL,X'00' 0246 01144000 * BUBUFLEN=LENGTH(INBCB); 0247 01145000 MVC BUBUFLEN(3),@CF00584+1 0247 01146000 * RFY 0248 01147000 * (GPR00F, 0248 01148000 * GPR01P, 0248 01149000 * GPR14P, 0248 01150000 * GPR15F)RSTD; 0248 01151000 * GPR00F=BUBCBCOR; /* SET UP SUBPOOL ID AND LENGTH 01152000 * IN REG0 */ 01153000 L GPR00F,BUBCBCOR 0249 01154000 * GEN(GETMAIN R,LV=(0)); /* GET CORE FOR BCB */ 01155000 GETMAIN R,LV=(0) 01156000 * BUBCBARA=GPR01P; /* GET ADDRESS OF THE GOTTEN CORE*/ 01157000 * 0251 01158000 ST GPR01P,BUBCBARA 0251 01159000 * /*****************************************************************/ 01160000 * /* */ 01161000 * /* GET CORE FOR A BUFFER */ 01162000 * /* */ 01163000 * /*****************************************************************/ 01164000 * 0252 01165000 * BUBUFLEN=BUBUFSZE; /* MOVE IN BUFFER LENGTH */ 01166000 L @07,@PC00004+4 0252 01167000 MVC BUBUFLEN(3),BUBUFSZE+1(@07) 0252 01168000 * GPR00F=BUBCBCOR; /* SUBPOOL ID AND LENGTH */ 01169000 L GPR00F,BUBCBCOR 0253 01170000 * GEN(GETMAIN R,LV=(0)); /* GET CORE FOR BUFFER */ 01171000 GETMAIN R,LV=(0) 01172000 * BUBUFARA=GPR01P; /* GET ADDRESS OF GOTTEN CORE */ 01173000 ST GPR01P,BUBUFARA 0255 01174000 * RFY 0256 01175000 * (GPR00F, 0256 01176000 * GPR01P, 0256 01177000 * GPR14P, 0256 01178000 * GPR15F)UNRSTD; 0256 01179000 * RFY 0257 01180000 * (GPR02F, 0257 01181000 * GPR03F, 0257 01182000 * GPR04F, 0257 01183000 * GPR05F)RSTD; 0257 01184000 * 0257 01185000 */* MOVE TEXT INTO BUFFER AREA */ 01186000 * 0258 01187000 * GPR02F=ADDR(BUBUF); /* AREA TO MOVE IN TEXT */ 01188000 L @15,BUBUFARA 0258 01189000 LR GPR02F,@15 0258 01190000 * GPR03F=BUBUFSZE; /* LENGTH TO BE MOVED */ 01191000 L @15,@PC00004+4 0259 01192000 L @15,BUBUFSZE(,@15) 0259 01193000 LR GPR03F,@15 0259 01194000 * GPR04F=ADDR(BUBUFTXT); /* AREA FROM WHICH TEXT IS MOVED */ 01195000 L GPR04F,@PC00004 0260 01196000 * GPR05F=BUBUFSZE; /* LENGTH TO BE MOVED */ 01197000 LR GPR05F,@15 0261 01198000 * GEN(MVCL @02,@04); /* MOVE IN TEXT */ 01199000 MVCL @02,@04 01200000 * RFY 0263 01201000 * (GPR02F, 0263 01202000 * GPR03F, 0263 01203000 * GPR04F, 0263 01204000 * GPR05F)UNRSTD; 0263 01205000 * IF INBCBFRS=0 THEN /* IF THIS BCB IS 1ST ON THE 0264 01206000 * CHAIN */ 01207000 L @15,INBCBFRS 0264 01208000 LTR @15,@15 0264 01209000 BNZ @RF00264 0264 01210000 * DO; /* INDICATE THIS IN THE BQCB */ 01211000 * INBCBFRS=BUBCBARA; /* FIRST = GOTTEN AREA */ 01212000 L @15,BUBCBARA 0266 01213000 ST @15,INBCBFRS 0266 01214000 * INBCBLST=INBCBFRS; /* FIRST BCB IS LAST BCB ON CHAIN*/ 01215000 ST @15,INBCBLST 0267 01216000 * END; 0268 01217000 * ELSE /* IF A BCB ALREADY EXISTS */ 01218000 * DO; 0269 01219000 B @RC00264 0269 01220000 @RF00264 DS 0H 0270 01221000 * INBCBLST->INBCBNXT=BUBCBARA;/* NEXT BCB IS THIS NEW BCB */ 01222000 L @15,BUBCBARA 0270 01223000 L @14,INBCBLST 0270 01224000 ST @15,INBCBNXT(,@14) 0270 01225000 * INBCBLST=BUBCBARA; /* THIS BCB IS LAST ON CHAIN */ 01226000 ST @15,INBCBLST 0271 01227000 * END; 0272 01228000 * BUBCBARA->INBCBNXT=0; /* INDICATES LAST BCB */ 01229000 @RC00264 L @15,BUBCBARA 0273 01230000 SR @14,@14 0273 01231000 ST @14,INBCBNXT(,@15) 0273 01232000 * BUBCBARA->INBCBLEN=BUBUFSZE; /* INITIALIZE BCB BUFFER LENGTH */ 01233000 L @14,@PC00004+4 0274 01234000 L @14,BUBUFSZE(,@14) 0274 01235000 STH @14,INBCBLEN(,@15) 0274 01236000 * BUBCBARA->INBCBTXT=BUBUFARA; /* POINT BCB TO BUFFER */ 01237000 L @07,BUBUFARA 0275 01238000 ST @07,INBCBTXT(,@15) 0275 01239000 * BUCURBCB=BUBCBARA; /* CURRENT BCB IS THIS BCB */ 01240000 L @06,@PC00004+8 0276 01241000 ST @15,BUCURBCB(,@06) 0276 01242000 * BUCURTXT=BUBUFARA; /* CURRENT INPUT STRING NOT 0277 01243000 * SCANNED IS ENTIRE INPUT STRING*/ 01244000 ST @07,BUCURTXT(,@06) 0277 01245000 * BUBYTLFT=BUBCBARA->INBCBLEN; /* # BYTES LEFT IN BUFFER */ 01246000 ST @14,BUBYTLFT(,@06) 0278 01247000 * RETURN; /* RETURN TO CALLER */ 01248000 @EL00004 DS 0H 0279 01249000 @EF00004 DS 0H 0279 01250000 @ER00004 LM @14,@12,@SA00004 0279 01251000 BR @14 0279 01252000 * END MFBUFENQ; 0280 01253000 * 0281 01254000 */* PROCEDURE NAME = MFRTEXT */ 01255000 */* */ 01256000 */* DESCRIPTIVE NAME = TEXT RECOGNIZER */ 01257000 */* */ 01258000 */* FUNCTION = RECOGNIZES TEXT AS THE TEXT PARAMETER INDICATES. */ 01259000 */* */ 01260000 * 0281 01261000 *MFRTEXT: 0281 01262000 * PROCEDURE(RTEXPARM,RTSCB); 0281 01263000 MFRTEXT STM @14,@12,@SA00005 0281 01264000 MVC @PC00005(8),0(@01) 0281 01265000 * DECLARE 0282 01266000 * RTEXPARM /* PTR TO TEXT PARM LIST */ 01267000 * PTR(31), 0282 01268000 * 1 RTPARMLS BASED(RTEXPARM), /* TEXT PARM LIST */ 01269000 * 2 RTLENGTH /* LENGTH OF TEXT */ 01270000 * FIXED(8), 0282 01271000 * 2 RTTEXT /* TEXT TO LOOK FOR */ 01272000 * CHAR(*), 0282 01273000 * 1 RTSCB, /* SCAN CONTROL BLOCK */ 01274000 * 2 RTCURBCB /* CURRENT BCB PTR */ 01275000 * PTR(31), 0282 01276000 * 2 RTCURTXT /* CURRENT TEXT PTR */ 01277000 * PTR(31), 0282 01278000 * 2 RTBYTLFT /* # BYTES LEFT IN BUFFER */ 01279000 * FIXED(31), 0282 01280000 * RTSCANER /* TEXT IN BUFFER */ 01281000 * CHAR(*)BASED(RTCURTXT); 0282 01282000 * IF RTBYTLFT=0 THEN /* AT END OF BUFFER? */ 01283000 L @15,@PC00005+4 0283 01284000 L @14,RTBYTLFT(,@15) 0283 01285000 LTR @14,@14 0283 01286000 BNZ @RF00283 0283 01287000 * DO; 0284 01288000 * CALL MFNXTREC(RTSCB); /* GET A RECORD IF ONE EXISTS */ 01289000 ST @15,@AL00001 0285 01290000 LA @01,@AL00001 0285 01291000 BAL @14,MFNXTREC 0285 01292000 * RFY 0286 01293000 * (GPR15F)RSTD; 0286 01294000 * IF GPR15F=4 THEN /* MFNXTREC UNSUCCESSFUL? */ 01295000 CH GPR15F,@CH00254 0287 01296000 BNE @RF00287 0287 01297000 * RETURN CODE(GPR15F); /* YES, RETURN TO IRBMFANL */ 01298000 L @14,@SA00005 0288 01299000 LM @00,@12,@SA00005+8 0288 01300000 BR @14 0288 01301000 * RFY 0289 01302000 * (GPR15F)UNRSTD; 0289 01303000 @RF00287 DS 0H 0290 01304000 * END; 0290 01305000 * IF RTLENGTH>RTBYTLFT THEN /* IF LENGTH OF TEXT PASSED > NO.*/ 01306000 @RF00283 L @15,@PC00005 0291 01307000 L @01,RTEXPARM(,@15) 0291 01308000 L @15,@PC00005+4 0291 01309000 SR @00,@00 0291 01310000 IC @00,RTLENGTH(,@01) 0291 01311000 C @00,RTBYTLFT(,@15) 0291 01312000 BNH @RF00291 0291 01313000 * /* OF BYTES LEFT IN BUFFER THEN */ 01314000 * RETURN CODE(4); /* RETURN UNSUCCESSFUL */ 01315000 LA @15,4 0292 01316000 L @14,@SA00005 0292 01317000 LM @00,@12,@SA00005+8 0292 01318000 BR @14 0292 01319000 * IF RTSCANER(1:RTLENGTH)=RTTEXT(1:RTLENGTH)THEN/* A MATCH? */ 01320000 @RF00291 L @15,@PC00005+4 0293 01321000 L @14,RTCURTXT(,@15) 0293 01322000 L @07,@PC00005 0293 01323000 L @07,RTEXPARM(,@07) 0293 01324000 SR @06,@06 0293 01325000 IC @06,RTLENGTH(,@07) 0293 01326000 LR @05,@06 0293 01327000 BCTR @05,0 0293 01328000 EX @05,@SC01510 0293 01329000 BNE @RF00293 0293 01330000 * DO; 0294 01331000 * RTCURTXT=RTCURTXT+RTLENGTH; /* UPDATE CRRENT TEXT PTR */ 01332000 AR @14,@06 0295 01333000 ST @14,RTCURTXT(,@15) 0295 01334000 * RTBYTLFT=RTBYTLFT-RTLENGTH; /* DECREASE # BYTES LEFT */ 01335000 LCR @06,@06 0296 01336000 A @06,RTBYTLFT(,@15) 0296 01337000 ST @06,RTBYTLFT(,@15) 0296 01338000 * RETURN CODE(0); /* RETURN SUCCESSFUL */ 01339000 SR @15,@15 0297 01340000 L @14,@SA00005 0297 01341000 LM @00,@12,@SA00005+8 0297 01342000 BR @14 0297 01343000 * END; 0298 01344000 * RETURN CODE(4); /* RETURN UNSUCCESSFUL */ 01345000 @RF00293 LA @15,4 0299 01346000 L @14,@SA00005 0299 01347000 LM @00,@12,@SA00005+8 0299 01348000 BR @14 0299 01349000 * END MFRTEXT; 0300 01350000 * 0301 01351000 */* PROCEDURE NAME = MFRBLANK */ 01352000 */* */ 01353000 */* DESCRIPTIVE NAME = BLANK RECOGNIZER */ 01354000 */* */ 01355000 */* FUNCTION = RECOGNIZES BLANKS DEPENDING ON THE INPUT PARAMTER. */ 01356000 */* THIS RECOGNIZER WILL ALWAYS RETURN SUCCESSFULLY (EVEN*/ 01357000 */* IF NO BLANKS OR COMMENTS WERE FOUND) OR IT WILL */ 01358000 */* RETURN A SUCCESSFUL INDICATION ONLY IF AT LEAST ONE */ 01359000 */* BLANK OR COMMENT IS FOUND. (DELIMITER TYPE). */ 01360000 */* */ 01361000 * 0301 01362000 *MFRBLANK: 0301 01363000 * PROCEDURE(RBTYPE,RBSCB); 0301 01364000 MFRBLANK STM @14,@12,@SA00006 0301 01365000 MVC @PC00006(8),0(@01) 0301 01366000 * DECLARE 0302 01367000 * RBTYPE /* PTR TO TYPE OF BLANK 0302 01368000 * RECOGNIZER TO BE EXECUTED */ 01369000 * PTR(31), 0302 01370000 * RBTYPBIT /* TYPE OF BLANK RECOGNIZER 0 - 01371000 * GENERAL BLANK RECOGNIZER 1 - 01372000 * DELIMITER TYPE BLANK 0302 01373000 * RECOGNIZER */ 01374000 * BASED(RBTYPE)BIT(1), 0302 01375000 * 1 RBSCB, /* SCAN CONTROL BLOCK */ 01376000 * 2 RBCURBCB /* CURRENT BCB PTR */ 01377000 * PTR(31), 0302 01378000 * 2 RBCURTXT /* CURRENT TXT PTR */ 01379000 * PTR(31), 0302 01380000 * 2 RBBYTLFT /* # BYTES LEFT */ 01381000 * FIXED(31), 0302 01382000 * RBTXTPTR /* PTR TO TEXT IN BUFFER */ 01383000 * PTR(31), 0302 01384000 * RBCHAR /* CHARACTER POINTED TO BY 0302 01385000 * RBTXTPTR */ 01386000 * CHAR(*)BASED(RBTXTPTR), 0302 01387000 * RBFINISH /* FINISH SCANNING FOR BLANKS OR 01388000 * COMMENTS */ 01389000 * BIT(1), 0302 01390000 * RBFOUND /* FOUND BLANKS OR COMMENTS */ 01391000 * BIT(1), 0302 01392000 * RBCOMBEG /* BEGINNING DELIMITER FOR COMENT*/ 01393000 * CHAR(2)STATIC LOCAL GEND, 0302 01394000 * RBCOMEND /* END DELIMITER FOR COMMENT */ 01395000 * CHAR(2)STATIC LOCAL GEND, 0302 01396000 * RBCOMENT /* COMMENT SCANNER */ 01397000 * FIXED(31); 0302 01398000 * GEN DATA DEFS(RBCOMBEG,RBCOMEND); 0303 01399000 * RBFOUND='0'B; 0304 01400000 NI RBFOUND,B'01111111' 0304 01401000 * RBFINISH='0'B; /* INITIALIZE FINISH BIT */ 01402000 NI RBFINISH,B'01111111' 0305 01403000 * DO WHILE RBFINISH='0'B; 0306 01404000 B @DE00306 0306 01405000 @DL00306 DS 0H 0307 01406000 * IF RBBYTLFT=0 THEN /* AT END OF BUFFER? */ 01407000 L @15,@PC00006+4 0307 01408000 L @14,RBBYTLFT(,@15) 0307 01409000 LTR @14,@14 0307 01410000 BNZ @RF00307 0307 01411000 * DO; 0308 01412000 * CALL MFNXTREC(RBSCB); /* GET A RECORD IF ONE EXISTS */ 01413000 ST @15,@AL00001 0309 01414000 LA @01,@AL00001 0309 01415000 BAL @14,MFNXTREC 0309 01416000 * RFY 0310 01417000 * (GPR15F)RSTD; 0310 01418000 * IF GPR15F=4 THEN /* NO MORE RECORDS? */ 01419000 CH GPR15F,@CH00254 0311 01420000 BNE @RF00311 0311 01421000 * DO; 0312 01422000 * RBFINISH='1'B; /* INDICATE SCAN IS FINISHED */ 01423000 OI RBFINISH,B'10000000' 0313 01424000 * GOTO RBENDLOP; /* END THIS LOOP */ 01425000 B RBENDLOP 0314 01426000 * RFY 0315 01427000 * (GPR15F)UNRSTD; 0315 01428000 * END; 0316 01429000 * END; 0317 01430000 * 0317 01431000 @RF00311 DS 0H 0318 01432000 * /***************************************************************/ 01433000 * /* */ 01434000 * /* SCAN FOR BLANKS OR COMMENTS */ 01435000 * /* */ 01436000 * /***************************************************************/ 01437000 * 0318 01438000 * DO RBTXTPTR=RBCURTXT TO RBCURTXT+RBBYTLFT-1; 0318 01439000 @RF00307 L @15,@PC00006+4 0318 01440000 L @15,RBCURTXT(,@15) 0318 01441000 B @DE00318 0318 01442000 @DL00318 DS 0H 0319 01443000 * IF RBTXTPTR=RBCURTXT+RBBYTLFT-1 THEN/* REACHED END OF BUFFER?*/ 01444000 L @14,@PC00006+4 0319 01445000 L @07,RBCURTXT(,@14) 0319 01446000 A @07,RBBYTLFT(,@14) 0319 01447000 BCTR @07,0 0319 01448000 CR @15,@07 0319 01449000 BE @RT00319 0319 01450000 * GOTO RBCHKBLN; /* CHECK FOR BLANKS */ 01451000 * IF RBCHAR(1:2)=RBCOMBEG THEN/* BEGINNING OF A COMMENT? */ 01452000 CLC RBCHAR(2,@15),RBCOMBEG 0321 01453000 BNE @RF00321 0321 01454000 * DO; 0322 01455000 * RBFOUND='1'B; /* COMMENT BEGINNING FOUND */ 01456000 OI RBFOUND,B'10000000' 0323 01457000 *RBCOMSCN: 0324 01458000 * ; 0324 01459000 * 0324 01460000 RBCOMSCN DS 0H 0325 01461000 */* SCAN THROUGH COMMENT TEXT */ 01462000 * 0325 01463000 * DO RBCOMENT=1 BY 1 WHILE RBCOMENT+RBTXTPTR='F0'X&RIINTGER<='F9'X); 0446 02020000 @RF00438 LA @15,1 0446 02021000 B @DE00446 0446 02022000 @DL00446 L @15,@PC00008+4 0446 02023000 L @15,RICURTXT(,@15) 0446 02024000 CLI RIINTGER(@15),X'F0' 0446 02025000 BL @DC00446 0446 02026000 CLI RIINTGER(@15),X'F9' 0446 02027000 BH @DC00446 0446 02028000 * RIINTFND='1'B; /* INDICATE NUMBER FOUND */ 02029000 OI RIINTFND,B'10000000' 0447 02030000 * RIINTDEC=RIINTGER&'0F'X; /* CLEAR OUT BITS */ 02031000 MVC RIINTDEC(1),RIINTGER(@15) 0448 02032000 NI RIINTDEC,X'0F' 0448 02033000 * RITEMNUM=RINUMBER; /* SAVE OLD VALUE */ 02034000 L @15,RINUMBER 0449 02035000 ST @15,RITEMNUM 0449 02036000 * RINUMBER=RINUMBER*10+RIINTDEC; 0450 02037000 LR @14,@15 0450 02038000 MH @14,@CH00580 0450 02039000 MVC @ZT00003+3(1),RIINTDEC 0450 02040000 AL @14,@ZT00003 0450 02041000 ST @14,RINUMBER 0450 02042000 * IF RINUMBERINBCBLEN; /* BUFFER LENGTH */ 02158000 L @15,INBCBFRS 0474 02159000 LH @14,INBCBLEN(,@15) 0474 02160000 ST @14,@TF00001 0474 02161000 MVC FRBCBLEN(3),@TF00001+1 0474 02162000 * RFY 0475 02163000 * (GPR00F, 0475 02164000 * GPR01P, 0475 02165000 * GPR14F, 0475 02166000 * GPR15F)RSTD; 0475 02167000 * GPR00F=FRBCBCOR; /* SUBPOOL & LENGTH */ 02168000 L GPR00F,FRBCBCOR 0476 02169000 * GPR01P=INBCBFRS->INBCBTXT; /* ADDRESS OF BUFFER TO FREE */ 02170000 L @07,INBCBFRS 0477 02171000 L GPR01P,INBCBTXT(,@07) 0477 02172000 * GEN(FREEMAIN R,LV=(0),A=(1)); /* FREE BUFFER */ 02173000 FREEMAIN R,LV=(0),A=(1) 02174000 * FRFREBCB=INBCBFRS; /* SAVE BCB TO BE FREED */ 02175000 L @07,INBCBFRS 0479 02176000 ST @07,FRFREBCB 0479 02177000 * INBCBFRS=INBCBFRS->INBCBNXT; /* FIRST = NEXT BCB */ 02178000 L @06,INBCBNXT(,@07) 0480 02179000 ST @06,INBCBFRS 0480 02180000 * FRBCBLEN=LENGTH(INBCB); /* BCB LENGTH */ 02181000 MVC FRBCBLEN(3),@CF00584+1 0481 02182000 * GPR00F=FRBCBCOR; /* SUBPOOL & LENGTH */ 02183000 L GPR00F,FRBCBCOR 0482 02184000 * GPR01P=FRFREBCB; /* ADDRESS OF BCB TO FREE */ 02185000 LR GPR01P,@07 0483 02186000 * GEN(FREEMAIN R,LV=(0),A=(1)); /* FREE BCB */ 02187000 FREEMAIN R,LV=(0),A=(1) 02188000 * RFY 0485 02189000 * (GPR00F, 0485 02190000 * GPR01P, 0485 02191000 * GPR14F, 0485 02192000 * GPR15F)UNRSTD; 0485 02193000 * END; 0486 02194000 @DE00473 CLC INBCBFRS(4),FRCONTRL 0486 02195000 BNE @DL00473 0486 02196000 * IF FRFRECOD=0 THEN /* FREE ALL? */ 02197000 SR @15,@15 0487 02198000 L @14,@PC00009 0487 02199000 C @15,FRFRECOD(,@14) 0487 02200000 BNE @RF00487 0487 02201000 * DO; 0488 02202000 * INBCBLST=ADDR(INBCBFRS); /* LAST BCB = ADDR(FIRST) */ 02203000 LA @14,INBCBFRS 0489 02204000 ST @14,INBCBLST 0489 02205000 * FRCURBCB=ADDR(INBCBFRS); /* SCB INITIAL CONDITION */ 02206000 L @07,@PC00009+4 0490 02207000 ST @14,FRCURBCB(,@07) 0490 02208000 * FRCURTXT=0; /* SCB INITIAL CONDITION */ 02209000 ST @15,FRCURTXT(,@07) 0491 02210000 * FRBYTLFT=0; /* SCB INITIAL CONDITION */ 02211000 ST @15,FRBYTLFT(,@07) 0492 02212000 * END; 0493 02213000 * RETURN; /* RETURN TO CALLER */ 02214000 @EL00009 DS 0H 0494 02215000 @EF00009 DS 0H 0494 02216000 @ER00009 LM @14,@12,@SA00009 0494 02217000 BR @14 0494 02218000 * END MFFREBUF; 0495 02219000 B @EL00009 0495 02220000 * 0496 02221000 */* PROCEDURE NAME = MFNXTREC */ 02222000 */* */ 02223000 */* DESCRIPTIVE NAME = GET THE NEXT SEQUENTIAL RECORD OF AN INPUT */ 02224000 */* SOURCE */ 02225000 */* */ 02226000 */* FUNCTION = THIS ROUTINE RETRIEVES THE NEXT SEQUENTIAL RECORD OF */ 02227000 */* AN INPUT SOURCE. IF NONE EXIST, IT RETURNS UNSUCCESS-*/ 02228000 */* FUL TO CALLER. */ 02229000 */* */ 02230000 * 0496 02231000 *MFNXTREC: 0496 02232000 * PROCEDURE(NXSCB); 0496 02233000 MFNXTREC STM @14,@12,@SA00010 0496 02234000 MVC @PC00010(4),0(@01) 0496 02235000 * DECLARE 0497 02236000 * 1 NXSCB, /* SCAN CONTROL BLOCK */ 02237000 * 2 NXCURBCB /* CURRENT BCB PTR */ 02238000 * PTR(31), 0497 02239000 * 2 NXCURTXT /* CURRENT TEXT PTR */ 02240000 * PTR(31), 0497 02241000 * 2 NXBYTLFT /* # BYTES LEFT */ 02242000 * FIXED(31), 0497 02243000 * 1 NXFRECOR BDY(WORD), /* GETMAIN PARAMETERS */ 02244000 * 2 NXSUBPOL /* SUBPOOL */ 02245000 * FIXED(8), 0497 02246000 * 2 NXLEN /* LENGTH */ 02247000 * FIXED(24), 0497 02248000 * NXFOUND BIT(1), /* RECORD FOUND BIT */ 02249000 * NXLENGTH /* LENGTH OF TEXT IN A RECORD */ 02250000 * FIXED(31), 0497 02251000 * NXTEXT /* TEXT IN RECORD */ 02252000 * CHAR(*)BASED(NXTEXPTR), 0497 02253000 * NXTEXPTR /* PTR TO RECORD */ 02254000 * PTR(31), 0497 02255000 * NXSUCCES /* SUCCESSFUL RETURN */ 02256000 * FIXED(31)CONSTANT(0), 0497 02257000 * NXUNSUCC /* UNSUCCESSFUL RETURN */ 02258000 * FIXED(31)CONSTANT(4); 0497 02259000 * IF INEXTSRC=ININTSRC THEN /* INTERNAL INPUT SOURCE? */ 02260000 TM INEXTSRC,B'10000000' 0498 02261000 BNO @RF00498 0498 02262000 * RETURN CODE(NXUNSUCC); /* RETURN UNSUCCESSFUL */ 02263000 LA @15,4 0499 02264000 L @14,@SA00010 0499 02265000 LM @00,@12,@SA00010+8 0499 02266000 BR @14 0499 02267000 * IF NXCURBCB=INBCBLST THEN /* LAST BCB ON CHAIN? */ 02268000 @RF00498 L @15,@PC00010 0500 02269000 CLC NXCURBCB(4,@15),INBCBLST 0500 02270000 BNE @RF00500 0500 02271000 * DO; /* YES */ 02272000 * NXFOUND='0'B; 0502 02273000 NI NXFOUND,B'01111111' 0502 02274000 * CALL MFREADIO(NXTEXPTR,NXLENGTH,NXFRECOR);/* READ IN A RECORD*/ 02275000 LA @15,NXTEXPTR 0503 02276000 ST @15,@AL00001 0503 02277000 LA @15,NXLENGTH 0503 02278000 ST @15,@AL00001+4 0503 02279000 LA @15,NXFRECOR 0503 02280000 ST @15,@AL00001+8 0503 02281000 LA @01,@AL00001 0503 02282000 BAL @14,MFREADIO 0503 02283000 * RFY 0504 02284000 * (GPR15F)RSTD; 0504 02285000 * IF GPR15F=NXSUCCES THEN /* WAS READ OK? */ 02286000 LTR GPR15F,GPR15F 0505 02287000 BNZ @RF00505 0505 02288000 * DO; /* YES */ 02289000 * RFY 0507 02290000 * (GPR15F)UNRSTD; 0507 02291000 * NXFOUND='1'B; /* A RECORD WAS RETRIEVED */ 02292000 OI NXFOUND,B'10000000' 0508 02293000 * CALL MFBUFENQ(NXTEXT,NXLENGTH,NXSCB);/* SET UP BUFFER & 02294000 * BCB */ 02295000 L @01,NXTEXPTR 0509 02296000 ST @01,@AL00001 0509 02297000 LA @15,NXLENGTH 0509 02298000 ST @15,@AL00001+4 0509 02299000 L @15,@PC00010 0509 02300000 ST @15,@AL00001+8 0509 02301000 LA @01,@AL00001 0509 02302000 BAL @14,MFBUFENQ 0509 02303000 * END; 0510 02304000 * RFY 0511 02305000 * (GPR00P, 0511 02306000 * GPR01P, 0511 02307000 * GPR14P, 0511 02308000 * GPR15P)RSTD; 0511 02309000 @RF00505 DS 0H 0512 02310000 * GPR00P=NXFRECOR; /* SUBPOOL AND LENGTH */ 02311000 L GPR00P,NXFRECOR 0512 02312000 * GPR01P=NXTEXPTR; /* PTR TO GOTTEN AREA */ 02313000 L GPR01P,NXTEXPTR 0513 02314000 * GEN(FREEMAIN R,LV=(0),A=(1));/* FREE GOTTEN AREA */ 02315000 FREEMAIN R,LV=(0),A=(1) 02316000 * RFY 0515 02317000 * (GPR00P, 0515 02318000 * GPR01P, 0515 02319000 * GPR14P, 0515 02320000 * GPR15P)UNRSTD; 0515 02321000 * IF NXFOUND='1'B THEN /* RECORD RETRIEVED? */ 02322000 TM NXFOUND,B'10000000' 0516 02323000 BNO @RF00516 0516 02324000 * RETURN CODE(NXSUCCES); /* RETURN SUCCESSFUL */ 02325000 SR @15,@15 0517 02326000 L @14,@SA00010 0517 02327000 LM @00,@12,@SA00010+8 0517 02328000 BR @14 0517 02329000 * ELSE /* END OF FILE */ 02330000 * RETURN CODE(NXUNSUCC); /* RETURN UNSUCCESSFUL */ 02331000 @RF00516 LA @15,4 0518 02332000 L @14,@SA00010 0518 02333000 LM @00,@12,@SA00010+8 0518 02334000 BR @14 0518 02335000 * END; 0519 02336000 * NXCURBCB=NXCURBCB->INBCBNXT; /* POINT CURRENT TO NEXT BCB */ 02337000 @RF00500 L @15,@PC00010 0520 02338000 L @01,NXCURBCB(,@15) 0520 02339000 L @14,INBCBNXT(,@01) 0520 02340000 ST @14,NXCURBCB(,@15) 0520 02341000 * NXCURTXT=NXCURBCB->INBCBTXT; /* CURRENT TEXT UPDATED */ 02342000 MVC NXCURTXT(4,@15),INBCBTXT(@14) 0521 02343000 * NXBYTLFT=NXCURBCB->INBCBLEN; /* LENGTH OF TEXT */ 02344000 LH @14,INBCBLEN(,@14) 0522 02345000 ST @14,NXBYTLFT(,@15) 0522 02346000 * RETURN CODE(NXSUCCES); /* RETURN SUCCESSFUL */ 02347000 SR @15,@15 0523 02348000 L @14,@SA00010 0523 02349000 LM @00,@12,@SA00010+8 0523 02350000 BR @14 0523 02351000 * END MFNXTREC; 0524 02352000 * 0525 02353000 */* PROCEDURE NAME = MFRALPHA */ 02354000 */* */ 02355000 */* DESCRIPTIVE NAME = ALPHANUMERIC RECOGNIZER */ 02356000 */* */ 02357000 */* FUNCTION = RECOGNIZES ANY ALPHANUMERIC CHARACTER. SAVES VALUE */ 02358000 */* FOR OPTION INITIALIZATION. */ 02359000 */* */ 02360000 */* DEPENDENCY = CHARACTER CODE DEPENDENT */ 02361000 */* */ 02362000 * 0525 02363000 *MFRALPHA: 0525 02364000 * PROCEDURE(RASAVALP,RASCB); 0525 02365000 MFRALPHA STM @14,@12,@SA00011 0525 02366000 MVC @PC00011(8),0(@01) 0525 02367000 * DECLARE 0526 02368000 * RASAVALP /* PTR TO PLACE TO SAVE CHARACTER*/ 02369000 * PTR(31), 0526 02370000 * RASAVCHA /* CHARACTER TO SAVE */ 02371000 * CHAR(1)BASED(INALPPTR(RASAVCOD)), 0526 02372000 * RASAVCOD /* CODE FOR WHERE TO SAVE */ 02373000 * FIXED(8)BASED(RASAVALP), 0526 02374000 * 1 RASCB, /* SCAN CONTROL BLOCK */ 02375000 * 2 RACURBCB /* CURRENT BCB PTR */ 02376000 * PTR(31), 0526 02377000 * 2 RACURTXT /* CURRENT TEXT PTR */ 02378000 * PTR(31), 0526 02379000 * 2 RABYTLFT /* # BYTES LEFT */ 02380000 * FIXED(31), 0526 02381000 * RACHAR /* CHARACTER IN BUFFER */ 02382000 * CHAR(1)BASED(RACURTXT); 0526 02383000 * IF RABYTLFT=0 THEN /* END OF BUFFER? */ 02384000 L @15,@PC00011+4 0527 02385000 L @14,RABYTLFT(,@15) 0527 02386000 LTR @14,@14 0527 02387000 BNZ @RF00527 0527 02388000 * DO; 0528 02389000 * CALL MFNXTREC(RASCB); /* GET NEXT RECORD */ 02390000 ST @15,@AL00001 0529 02391000 LA @01,@AL00001 0529 02392000 BAL @14,MFNXTREC 0529 02393000 * RFY 0530 02394000 * (GPR15F)RSTD; 0530 02395000 * IF GPR15F=4 THEN /* MFNXTREC UNSUCCESSFUL? */ 02396000 CH GPR15F,@CH00254 0531 02397000 BNE @RF00531 0531 02398000 * RETURN CODE(GPR15F); /* YES, RETURN UNSUCCESSFUL */ 02399000 L @14,@SA00011 0532 02400000 LM @00,@12,@SA00011+8 0532 02401000 BR @14 0532 02402000 * RFY 0533 02403000 * (GPR15F)UNRSTD; 0533 02404000 @RF00531 DS 0H 0534 02405000 * END; 0534 02406000 * 0534 02407000 * /*****************************************************************/ 02408000 * /* */ 02409000 * /* CHECK FOR VALID ALPHANUMERIC CHARACTER */ 02410000 * /* */ 02411000 * /*****************************************************************/ 02412000 * 0535 02413000 * IF RACHAR>='C1'X&RACHAR<='C9'X| /* A-I? OR */ 02414000 * RACHAR>='D1'X&RACHAR<='D9'X|/* J-R? OR */ 02415000 * RACHAR>='E2'X&RACHAR<='E9'X|/* S-Z? OR */ 02416000 * RACHAR>='F0'X&RACHAR<='F9'X THEN/* 0-9? */ 02417000 @RF00527 L @15,@PC00011+4 0535 02418000 L @15,RACURTXT(,@15) 0535 02419000 CLI RACHAR(@15),X'C1' 0535 02420000 BL @GL00012 0535 02421000 CLI RACHAR(@15),X'C9' 0535 02422000 BNH @RT00535 0535 02423000 @GL00012 L @15,@PC00011+4 0535 02424000 L @15,RACURTXT(,@15) 0535 02425000 CLI RACHAR(@15),X'D1' 0535 02426000 BL @GL00011 0535 02427000 CLI RACHAR(@15),X'D9' 0535 02428000 BNH @RT00535 0535 02429000 @GL00011 L @15,@PC00011+4 0535 02430000 L @15,RACURTXT(,@15) 0535 02431000 CLI RACHAR(@15),X'E2' 0535 02432000 BL @GL00010 0535 02433000 CLI RACHAR(@15),X'E9' 0535 02434000 BNH @RT00535 0535 02435000 @GL00010 L @15,@PC00011+4 0535 02436000 L @15,RACURTXT(,@15) 0535 02437000 CLI RACHAR(@15),X'F0' 0535 02438000 BL @RF00535 0535 02439000 CLI RACHAR(@15),X'F9' 0535 02440000 BH @RF00535 0535 02441000 @RT00535 DS 0H 0536 02442000 * DO; 0536 02443000 * RASAVCHA=RACHAR; /* STORE CHARACTER */ 02444000 L @15,@PC00011 0537 02445000 L @01,RASAVALP(,@15) 0537 02446000 SR @15,@15 0537 02447000 IC @15,RASAVCOD(,@01) 0537 02448000 SLA @15,2 0537 02449000 L @01,INALPPTR-4(@15) 0537 02450000 L @15,@PC00011+4 0537 02451000 L @14,RACURTXT(,@15) 0537 02452000 MVC RASAVCHA(1,@01),RACHAR(@14) 0537 02453000 * RACURTXT=RACURTXT+1; /* UPDATE CURRENT TEXT PTR */ 02454000 AH @14,@CH00065 0538 02455000 ST @14,RACURTXT(,@15) 0538 02456000 * RABYTLFT=RABYTLFT-1; /* UPDATE BYTES LEFT */ 02457000 L @14,RABYTLFT(,@15) 0539 02458000 BCTR @14,0 0539 02459000 ST @14,RABYTLFT(,@15) 0539 02460000 * RETURN CODE(0); /* RETURN SUCCESSFUL */ 02461000 SR @15,@15 0540 02462000 L @14,@SA00011 0540 02463000 LM @00,@12,@SA00011+8 0540 02464000 BR @14 0540 02465000 * END; 0541 02466000 * RETURN CODE(4); /* RETURN UNSUCCESSFUL */ 02467000 @RF00535 LA @15,4 0542 02468000 L @14,@SA00011 0542 02469000 LM @00,@12,@SA00011+8 0542 02470000 BR @14 0542 02471000 * END MFRALPHA; 0543 02472000 *MFLISTOP: 0544 02473000 * PROCEDURE; 0544 02474000 MFLISTOP STM @14,@12,@SA00012 0544 02475000 * DECLARE 0545 02476000 * LINDXARY(10) /* INDEX NUMBER ARRAY FOR LISTOP */ 02477000 * FIXED(15), 0545 02478000 * LIFORCE /* FORCE BIT FOR MERGE */ 02479000 * BIT(1)CONSTANT('1'B), 0545 02480000 * LIGOSPFD /* INDICATES THAT 'GO' WAS 0545 02481000 * ENTERED AT CONSOLE */ 02482000 * BIT(1), 0545 02483000 * LI1STIME /* 1ST TIME THROUGH CODE */ 02484000 * BIT(1); 0545 02485000 * 0545 02486000 * /*****************************************************************/ 02487000 * /* */ 02488000 * /* LIST MERGED SOURCES */ 02489000 * /* */ 02490000 * /*****************************************************************/ 02491000 * 0546 02492000 * IF MFCOOPIV^=INOPIYES THEN /* 'NOOPI' SPECIFIED? */ 02493000 L @15,@PC00001+8 0546 02494000 TM MFCOOPIV(@15),B'00000001' 0546 02495000 BNO @RT00546 0546 02496000 * GO TO LIMSGDS; /* LIST OPTIONS IN MSG D.S. ONLY */ 02497000 *LIST: 0548 02498000 * MFCOOPIV='0'B; /* TURN OFF OPI OPTION */ 02499000 LIST L @15,@PC00001+8 0548 02500000 NI MFCOOPIV(@15),B'11111110' 0548 02501000 * LI1STIME='1'B; /* INDICATE 1ST TIME THROUGH */ 02502000 OI LI1STIME,B'10000000' 0549 02503000 * LINDXARY(1)=MID305I2; /* INDEX ARRAY FOR IRB305I */ 02504000 MVC LINDXARY(2),@CH00614 0550 02505000 * LINDXARY(2)=MID305I3; 0551 02506000 MVC LINDXARY+2(2),@CH00616 0551 02507000 * LINDXARY(3)=MID305I4; 0552 02508000 MVC LINDXARY+4(2),@CH00045 0552 02509000 * LINDXARY(4)=MID305I5; 0553 02510000 MVC LINDXARY+6(2),@CH00169 0553 02511000 * LINDXARY(5)=MID305I6; 0554 02512000 MVC LINDXARY+8(2),@CH00620 0554 02513000 * LINDXARY(6)=MID305I7; 0555 02514000 MVC LINDXARY+10(2),@CH00622 0555 02515000 * LINDXARY(7)=MID305I8; 0556 02516000 MVC LINDXARY+12(2),@CH00624 0556 02517000 * LINDXARY(8)=MID305I9; 0557 02518000 MVC LINDXARY+14(2),@CH00626 0557 02519000 * LINDXARY(9)=MID305IA; 0558 02520000 MVC LINDXARY+16(2),@CH00628 0558 02521000 * LINDXARY(10)=MID305IB; 0559 02522000 * 0559 02523000 MVC LINDXARY+18(2),@CH00592 0559 02524000 * /*****************************************************************/ 02525000 * /* */ 02526000 * /* ISSUE 'MF/1 PARAMETERS' MESSAGE */ 02527000 * /* */ 02528000 * /*****************************************************************/ 02529000 * 0560 02530000 * CALL INMSGMOD(MID305I1,0,0,0); 0560 02531000 * 0560 02532000 L @15,INMSGADR 0560 02533000 LA @01,@AL00560 0560 02534000 BALR @14,@15 0560 02535000 * /*****************************************************************/ 02536000 * /* */ 02537000 * /* CALL LISTOP TO LIST THE OPTIONS REQUESTED ON THE CONSOLE */ 02538000 * /* */ 02539000 * /*****************************************************************/ 02540000 * 0561 02541000 * CALL LISTOP(LINDXARY,ADDR(MFCOA),ADDR(MFMVT)); 0561 02542000 LA @15,LINDXARY 0561 02543000 ST @15,@AL00001 0561 02544000 L @15,@PC00001+8 0561 02545000 ST @15,@AFTEMPS+8 0561 02546000 LA @15,@AFTEMPS+8 0561 02547000 ST @15,@AL00001+4 0561 02548000 L @15,@PC00001+4 0561 02549000 ST @15,@AFTEMPS+12 0561 02550000 LA @15,@AFTEMPS+12 0561 02551000 ST @15,@AL00001+8 0561 02552000 LA @01,@AL00001 0561 02553000 BAL @14,LISTOP 0561 02554000 *LIREPLY: 0562 02555000 * 0562 02556000 * /*****************************************************************/ 02557000 * /* */ 02558000 * /* ALLOW OPERATOR TO REPLY WITH MORE OPTIONS OR 'GO' */ 02559000 * /* */ 02560000 * /*****************************************************************/ 02561000 * 0562 02562000 * CALL INMSGMOD(MID306D,0,INREPBUF,0); 0562 02563000 * 0562 02564000 LIREPLY MVC @AL00001(16),@AL00562 0562 02565000 LA @15,INREPBUF 0562 02566000 ST @15,@AL00001+8 0562 02567000 L @15,INMSGADR 0562 02568000 LA @01,@AL00001 0562 02569000 BALR @14,@15 0562 02570000 * /*****************************************************************/ 02571000 * /* */ 02572000 * /* CHECK OPERATOR S REPLY */ 02573000 * /* */ 02574000 * /*****************************************************************/ 02575000 * 0563 02576000 * IF INREPTXT(1:2)='GO' THEN /* WAS REPLY GO? */ 02577000 CLC INREPTXT(2),@CC01181 0563 02578000 BNE @RF00563 0563 02579000 * DO; 0564 02580000 * 0564 02581000 */*CHECK FOR BLANKS IN REST OF RECORD */ 02582000 * 0565 02583000 * DO I=3 TO LENGTH(INREPTXT)WHILE(INREPTXT(I)=' '); 0565 02584000 LA @15,3 0565 02585000 ST @15,I 0565 02586000 @DL00565 LA @14,INREPTXT-1(@15) 0565 02587000 CLI 0(@14),C' ' 0565 02588000 BNE @DC00565 0565 02589000 * END; 0566 02590000 AH @15,@CH00065 0566 02591000 ST @15,I 0566 02592000 CH @15,@CH00823 0566 02593000 BNH @DL00565 0566 02594000 @DC00565 DS 0H 0567 02595000 * IF I=LENGTH(INREPTXT)+1 THEN/* IF REST OF TEXT WAS BLANK */ 02596000 CLC I(4),@CF01488 0567 02597000 BNE @RF00567 0567 02598000 * LIGOSPFD='1'B; /* INDICATE 'GO' WAS SPECIFIED */ 02599000 OI LIGOSPFD,B'10000000' 0568 02600000 * ELSE /* INDICATE */ 02601000 * LIGOSPFD='0'B; /* 'GO' NOT SPECIFIED */ 02602000 B @RC00567 0569 02603000 @RF00567 NI LIGOSPFD,B'01111111' 0569 02604000 * END; 0570 02605000 * ELSE /* 'GO' NOT SPECIFIED */ 02606000 * LIGOSPFD='0'B; /* TEXT WILL BE PROCESSED */ 02607000 B @RC00563 0571 02608000 @RF00563 NI LIGOSPFD,B'01111111' 0571 02609000 * IF LIGOSPFD='1'B THEN /* WAS REPLY GO? */ 02610000 @RC00563 TM LIGOSPFD,B'10000000' 0572 02611000 BNO @RF00572 0572 02612000 * DO; 0573 02613000 * IF LI1STIME='0'B THEN /* DID OPERATOR REPLY WITH VALUES*/ 02614000 TM LI1STIME,B'10000000' 0574 02615000 BNZ @RF00574 0574 02616000 * DO; 0575 02617000 * CALL MFVALCHK; /* CHECK OPTIONS VALIDITY */ 02618000 BAL @14,MFVALCHK 0576 02619000 * IF MFCOOPIV='1'B THEN /* OPI REQUESTED? */ 02620000 L @15,@PC00001+8 0577 02621000 TM MFCOOPIV(@15),B'00000001' 0577 02622000 BO @RT00577 0577 02623000 * GOTO LIST; /* REPEAT PROCESSING UNTIL NO 0578 02624000 * ERRORS ARE FOUND */ 02625000 * END; 0579 02626000 *LIMSGDS: 0580 02627000 * ; 0580 02628000 @RF00574 DS 0H 0580 02629000 LIMSGDS DS 0H 0581 02630000 * INDDNAME='MF1INPUT'; /* UNIQUE DDNAME */ 02631000 * 0581 02632000 MVC INDDNAME(8),@CC00946 0581 02633000 * /*************************************************************/ 02634000 * /* */ 02635000 * /* ALLOCATE MESSAGE DATASET. IF REPORT(REALTIME) WAS */ 02636000 * /* SPECIFIED, UNALLOCATE DATASET AT CLOSE TIME. */ 02637000 * /* */ 02638000 * /*************************************************************/ 02639000 * 0582 02640000 * INMODULE='IRBMFALL'; /* ALLOCATION ROUTINE */ 02641000 MVC INMODULE(8),@CC01183 0582 02642000 * RFY 0583 02643000 * (GPR00P, 0583 02644000 * GPR01P, 0583 02645000 * GPR14P, 0583 02646000 * GPR15P)RSTD; 0583 02647000 * GEN(LOAD EPLOC=INMODULE); 0584 02648000 LOAD EPLOC=INMODULE 02649000 * INALLADR=GPR00P; /* SAVE ITS ADDRESS */ 02650000 ST GPR00P,INALLADR 0585 02651000 * RFY 0586 02652000 * (GPR00P, 0586 02653000 * GPR01P, 0586 02654000 * GPR14P, 0586 02655000 * GPR15P)UNRSTD; 0586 02656000 * IF MFCOREPV='10'B THEN /* REPORT(REALTIME)? */ 02657000 L @15,@PC00001+8 0587 02658000 TM MFCOREPV(@15),B'00000010' 0587 02659000 BNO @RF00587 0587 02660000 TM MFCOREPV(@15),B'00000001' 0587 02661000 BNZ @RF00587 0587 02662000 * DO; 0588 02663000 * INUNALLC='1'B; 0589 02664000 OI INUNALLC,B'10000000' 0589 02665000 * CALL INALLMOD(INDDNAME,MFCOOUTV,INUNALLC);/* UNALLOC. 0590 02666000 * D.S. */ 02667000 LA @14,INDDNAME 0590 02668000 ST @14,@AL00001 0590 02669000 LA @15,MFCOOUTV(,@15) 0590 02670000 ST @15,@AL00001+4 0590 02671000 LA @15,INUNALLC 0590 02672000 ST @15,@AL00001+8 0590 02673000 L @14,INALLADR 0590 02674000 LR @15,@14 0590 02675000 LA @01,@AL00001 0590 02676000 BALR @14,@15 0590 02677000 * END; 0591 02678000 * ELSE /* DO NOT UNALLOCATE DATA SET */ 02679000 * DO; 0592 02680000 B @RC00587 0592 02681000 @RF00587 DS 0H 0593 02682000 * INUNALLC='0'B; /* TURN OFF UNALLOCATE BIT */ 02683000 NI INUNALLC,B'01111111' 0593 02684000 * CALL INALLMOD(INDDNAME,MFCOOUTV,INUNALLC);/* CALL 0594 02685000 * IRBMFALL */ 02686000 LA @15,INDDNAME 0594 02687000 ST @15,@AL00001 0594 02688000 L @15,@PC00001+8 0594 02689000 LA @15,MFCOOUTV(,@15) 0594 02690000 ST @15,@AL00001+4 0594 02691000 LA @15,INUNALLC 0594 02692000 ST @15,@AL00001+8 0594 02693000 L @15,INALLADR 0594 02694000 LA @01,@AL00001 0594 02695000 BALR @14,@15 0594 02696000 * END; 0595 02697000 * RFY 0596 02698000 * (GPR00P, 0596 02699000 * GPR01P, 0596 02700000 * GPR14P, 0596 02701000 * GPR15P)RSTD; 0596 02702000 @RC00587 DS 0H 0597 02703000 * GEN(DELETE EPLOC=INMODULE); 0597 02704000 DELETE EPLOC=INMODULE 02705000 * RFY 0598 02706000 * (GPR00P, 0598 02707000 * GPR01P, 0598 02708000 * GPR14P, 0598 02709000 * GPR15P)UNRSTD; 0598 02710000 * 0598 02711000 * /*************************************************************/ 02712000 * /* */ 02713000 * /* OPEN MESSAGE DATASET */ 02714000 * /* */ 02715000 * /*************************************************************/ 02716000 * 0599 02717000 * DCBPTR=ADDR(INMSGDCB); /* SET UP MSG DCB PTR */ 02718000 LA @15,INMSGDCB 0599 02719000 ST @15,DCBPTR 0599 02720000 * GENERATE SETS(INMSGDCB,INAUMOPN); 0600 02721000 OPEN (INMSGDCB,(OUTPUT)),MF=(E,INAUMOPN) 02722000 * IF DCBOFOPN^='1'B THEN /* OPEN FAILED? */ 02723000 L @01,DCBPTR 0601 02724000 TM DCBOFOPN+40(@01),B'00010000' 0601 02725000 BO @RF00601 0601 02726000 * GENERATE(ABEND 1110,DUMP); 0602 02727000 ABEND 1110,DUMP 02728000 * LINDXARY(1)=MID103I2; /* MSG INDEX NUMBERS PASSED TO */ 02729000 @RF00601 MVC LINDXARY(2),@CH00600 0603 02730000 * LINDXARY(2)=MID103I3; /* LISTOP SUBROUTINE FOR IRB103I */ 02731000 MVC LINDXARY+2(2),@CH00602 0604 02732000 * LINDXARY(3)=MID103I4; 0605 02733000 MVC LINDXARY+4(2),@CH00067 0605 02734000 * LINDXARY(4)=MID103I5; 0606 02735000 MVC LINDXARY+6(2),@CH00088 0606 02736000 * LINDXARY(5)=MID103I6; 0607 02737000 MVC LINDXARY+8(2),@CH00606 0607 02738000 * LINDXARY(6)=MID103I7; 0608 02739000 MVC LINDXARY+10(2),@CH00608 0608 02740000 * LINDXARY(7)=MID103I8; 0609 02741000 MVC LINDXARY+12(2),@CH00610 0609 02742000 * LINDXARY(8)=MID103I9; 0610 02743000 MVC LINDXARY+14(2),@CH00612 0610 02744000 * LINDXARY(9)=MID103IA; 0611 02745000 MVC LINDXARY+16(2),@CH00630 0611 02746000 * LINDXARY(10)=MID103IB; 0612 02747000 * 0612 02748000 MVC LINDXARY+18(2),@CH00650 0612 02749000 * /*************************************************************/ 02750000 * /* */ 02751000 * /* LIST OPTIONS IN EFFECT IN MESSAGE DATASET */ 02752000 * /* */ 02753000 * /*************************************************************/ 02754000 * 0613 02755000 * CALL INMSGMOD(MID103I1,0,0,INMDCBAD); 0613 02756000 MVC @AL00001(12),@AL00613 0613 02757000 LA @15,INMDCBAD 0613 02758000 ST @15,@AL00001+12 0613 02759000 L @15,INMSGADR 0613 02760000 LA @01,@AL00001 0613 02761000 BALR @14,@15 0613 02762000 * CALL LISTOP(LINDXARY,ADDR(MFCOA),ADDR(MFMVT));/* LIST OPTIONS*/ 02763000 * 0614 02764000 LA @15,LINDXARY 0614 02765000 ST @15,@AL00001 0614 02766000 L @15,@PC00001+8 0614 02767000 ST @15,@AFTEMPS+8 0614 02768000 LA @15,@AFTEMPS+8 0614 02769000 ST @15,@AL00001+4 0614 02770000 L @15,@PC00001+4 0614 02771000 ST @15,@AFTEMPS+12 0614 02772000 LA @15,@AFTEMPS+12 0614 02773000 ST @15,@AL00001+8 0614 02774000 LA @01,@AL00001 0614 02775000 BAL @14,LISTOP 0614 02776000 * /*************************************************************/ 02777000 * /* */ 02778000 * /* CLOSE MESSAGE DATASET */ 02779000 * /* */ 02780000 * /*************************************************************/ 02781000 * 0615 02782000 * GENERATE REFS(INMSGDCB,INAUMOPN); 0615 02783000 CLOSE (INMSGDCB,DISP),MF=(E,INAUMOPN) 02784000 * RETURN; /* RETURN TO INP */ 02785000 @EL00012 DS 0H 0616 02786000 @EF00012 DS 0H 0616 02787000 @ER00012 LM @14,@12,@SA00012 0616 02788000 BR @14 0616 02789000 * END; 0617 02790000 * ELSE /* PROCESS OPERATOR REPLY */ 02791000 * DO; 0618 02792000 * 0618 02793000 @RF00572 DS 0H 0619 02794000 * /*************************************************************/ 02795000 * /* */ 02796000 * /* OPERATOR REPLIED WITH MORE VALUES. PROCESS THEM */ 02797000 * /* */ 02798000 * /*************************************************************/ 02799000 * 0619 02800000 * CALL MFBUFENQ(INREPTXT,EVAL(INREPLEN),INSCB);/* BUILD A 0619 02801000 * BUFFER & BCB */ 02802000 LA @15,INREPTXT 0619 02803000 ST @15,@AL00001 0619 02804000 LH @15,INREPLEN 0619 02805000 ST @15,@AFTEMPS+8 0619 02806000 LA @15,@AFTEMPS+8 0619 02807000 ST @15,@AL00001+4 0619 02808000 LA @15,INSCB 0619 02809000 ST @15,@AL00001+8 0619 02810000 LA @01,@AL00001 0619 02811000 BAL @14,MFBUFENQ 0619 02812000 * CALL MFSRCPRO(LIFORCE); /* PROCESS REPLY FORCING A MERGE */ 02813000 LA @01,@AL00620 0620 02814000 BAL @14,MFSRCPRO 0620 02815000 * LI1STIME='0'B; /* OPERATOR REPLIED WITH MORE 0621 02816000 * VALUES */ 02817000 NI LI1STIME,B'01111111' 0621 02818000 * GOTO LIREPLY; /* ALLOW OPERATOR TO REPLY */ 02819000 B LIREPLY 0622 02820000 * END; 0623 02821000 * END MFLISTOP; 0624 02822000 * 0625 02823000 */* PROCEDURE NAME = LISTOP */ 02824000 */* */ 02825000 */* DESCRIPTIVE NAME = LIST THE OPTIONS */ 02826000 */* */ 02827000 */* FUNCTION = LISTS THE OPTIONS AFTER ALL SOURCES OF INPUT HAVE */ 02828000 */* BEEN MERGED INTO THE PERMANENT PMA AND COA */ 02829000 */* */ 02830000 * 0625 02831000 *LISTOP: 0625 02832000 * PROCEDURE(LINDXNUM,LICOAPTR,LIMVTPTR); 0625 02833000 * 0625 02834000 LISTOP STM @14,@12,@SA00013 0625 02835000 MVC @PC00013(12),0(@01) 0625 02836000 */* BASED COA AND MVT */ 02837000 */**** START OF SPECIFICATIONS ***************************************/ 02838000 */* */ 02839000 */* MACCOMP Y-2 SC1CQ/GAM20 */ 02840000 */* MACSTAT Y-2 73121/Y02150 */ 02841000 */* MACMEAN TMCOA MEANS COMMON OPTION AREA */ 02842000 */* */ 02843000 */* MODULE-NAME = IRBINCOA */ 02844000 */* IRBMFCOA */ 02845000 */* IRBSTCOA */ 02846000 */* IRBTMCOA */ 02847000 */* */ 02848000 */* DESCRIPTIVE-NAME = COMMON OPTION AREA */ 02849000 */* */ 02850000 */* COPYRIGHT = NONE */ 02851000 */* */ 02852000 */* STATUS = RELEASE 2, VERSION 0 */ 02853000 */* */ 02854000 */* FUNCTION = MAPPING MACRO FOR THE COA. THE COA CONTAINS THE */ 02855000 */* OPTIONS COMMON TO ALL MEASUREMENTS MADE BY MF/1. */ 02856000 */* */ 02857000 */* NOTES = SEE BELOW */ 02858000 */* */ 02859000 */* MULTIPLE MACRO NAMES ALLOWS A PROGRAM TO HAVE MULTIPLE COPIES */ 02860000 */* OF THE SAME DATA STRUCTURE FOR DIFFERENT USES, EACH WITH ITS */ 02861000 */* OWN IMPLICIT POINTER AND ATTRIBUTES. */ 02862000 */* */ 02863000 */* MODULE-TYPE = PLS MAPPING MACRO */ 02864000 */* */ 02865000 */* CHANGE-ACTIVITY = */ 02866000 */* */ 02867000 */* A000000-999999 Y02150*/ 02868000 */* */ 02869000 */* METHOD-OF-INVOCATION = SEE BELOW */ 02870000 */* */ 02871000 */* PLS - .QUESTION MARK.IRBINCOA ATTRIBUT(ATTRIBUTES) */ 02872000 */* - .QUESTION MARK.IRBMFCOA ATTRIBUT(ATTRIBUTES) */ 02873000 */* - .QUESTION MARK.IRBSTCOA ATTRIBUT(ATTRIBUTES) */ 02874000 */* - .QUESTION MARK.IRBTMCOA ATTRIBUT(ATTRIBUTES) */ 02875000 */* WHERE ATTRIBUTES ARE ANY ACCEPTABLE PLS ATTRIBUTES */ 02876000 */* FOR STRUCTURE DECLARATIONS. */ 02877000 */* */ 02878000 */**** END OF SPECIFICATIONS *****************************************/ 02879000 * 0626 02880000 * /*****************************************************************/ 02881000 * /* */ 02882000 * /* ?IRBTMCOA ATTRIBUT(BASED(LICOAPTR)) */ 02883000 * /* */ 02884000 * /*****************************************************************/ 02885000 * 0626 02886000 * DECLARE 0626 02887000 * 1 TMCOA /* COMMON OPTION AREA */ 02888000 * BASED(LICOAPTR)BDY(WORD), 0626 02889000 * 2 TMCOTCE /* TRACE OPTION VARIABLES */ 02890000 * FIXED(31), 0626 02891000 * 3 TMCOTCEF /* TRACE OPTION FLAGS */ 02892000 * BIT(8), 0626 02893000 * 4 TMCOTCEC /* TRACE OPTION CONTROL */ 02894000 * BIT(1), /* 0-OPTION HAS BEEN SPECIFIED 0626 02895000 * 1-OPTION NOT YET SPECIFIED */ 02896000 * 3 * CHAR(2), 0626 02897000 * 3 TMCOTCEL /* TRACE OPTION VALUE AREA */ 02898000 * CHAR(1), 0626 02899000 * 4 * BIT(7), 0626 02900000 * 4 TMCOTCEV /* TRACE OPTION VALUE FLAG */ 02901000 * BIT(1), /* 0-MF/1 MEASUREMENTS NOT TRACED 02902000 * TO SMF. 1-MEASUREMENTS ARE 0626 02903000 * TRACED WITH SMF. */ 02904000 * 2 TMCOCYC /* CYCLE OPTION VARIABLES */ 02905000 * FIXED(31), 0626 02906000 * 3 TMCOCYCF /* CYCLE OPTION FLAGS */ 02907000 * BIT(8), 0626 02908000 * 4 TMCOCYCC /* CYCLE OPTION CONTROL */ 02909000 * BIT(1), /* 0-OPTION HAS BEEN SPECIFIED 0626 02910000 * 1-OPTION NOT YET SPECIFIED */ 02911000 * 3 * CHAR(1), 0626 02912000 * 3 TMCOCYCV /* CYCLE OPTION VALUE */ 02913000 * FIXED(15), /* 50 TO 999 MILLISECONDS */ 02914000 * 2 TMCOOUT /* OUT(PUT)CLASS OPTION */ 02915000 * FIXED(31), 0626 02916000 * 3 TMCOOUTF /* OUTCLASS OPTION FLAGS */ 02917000 * BIT(8), 0626 02918000 * 4 TMCOOUTC /* OUTCLASS OPTION CONTROL */ 02919000 * BIT(1), /* 0-OPTION HAS BEEN SPECIFIED 0626 02920000 * 1-OPTION NOT YET SPECIFIED */ 02921000 * 3 * CHAR(2), 0626 02922000 * 3 TMCOOUTV /* OUTCLASS OPTION VALUE */ 02923000 * CHAR(1), /* ALPHANUMERIC OUTPUT CLASS */ 02924000 * 2 TMCOINT /* INTERVAL OPTION */ 02925000 * FIXED(31), 0626 02926000 * 3 TMCOINTF /* INTERVAL OPTION FLAGS */ 02927000 * BIT(8), 0626 02928000 * 4 TMCOINTC /* INTERVAL OPTION CONTROL */ 02929000 * BIT(1), /* 0-OPTION HAS BEEN SPECIFIED 0626 02930000 * 1-OPTION NOT YET SPECIFIED */ 02931000 * 3 * CHAR(1), 0626 02932000 * 3 TMCOINTV /* INTERVAL OPTION VALUE */ 02933000 * FIXED(15), /* 1 TO 60 MINUTES */ 02934000 * 2 TMCOREP /* REPORT OPTION */ 02935000 * FIXED(31), 0626 02936000 * 3 TMCOREPF /* REPORT OPTION FLAGS */ 02937000 * BIT(8), 0626 02938000 * 4 TMCOREPC /* REPORT OPTION CONTROL */ 02939000 * BIT(1), /* 0-OPTION HAS BEEN SPECIFIED 0626 02940000 * 1-OPTION NOT YET SPECIFIED */ 02941000 * 3 * CHAR(2), 0626 02942000 * 3 TMCOREPL /* REPORT OPTION VALUE AREA */ 02943000 * CHAR(1), 0626 02944000 * 4 * BIT(6), 0626 02945000 * 4 TMCOREPV /* REPORT OPTION VALUE FLAGS */ 02946000 * BIT(2), /* 00-NO REPORTS, 01-DEFERRED 0626 02947000 * REPORTS, 10-REALTIME REPORTS */ 02948000 * 2 TMCOSTP /* STOP OPTION VALUE */ 02949000 * FIXED(31), 0626 02950000 * 3 TMCOSTPF /* STOP OPTION FLAGS */ 02951000 * BIT(8), 0626 02952000 * 4 TMCOSTPC /* STOP OPTION CONTROL */ 02953000 * BIT(1), /* 0-OPTION HAS BEEN SPECIFIED 0626 02954000 * 1-OPTION NOT YET SPECIFIED */ 02955000 * 4 TMCOSTPS /* STOP OPTION STATUS */ 02956000 * BIT(1), /* 0-MF/1 STOPS AFTER --COSTPV 0626 02957000 * STOP OPTION UNITS(COSTPU). 0626 02958000 * 1-MF/1 DOES NOT STOP UNDER 0626 02959000 * PROGRAM CONTROL,(STOP 0626 02960000 * COMMAND). */ 02961000 * 4 TMCOSTPU /* STOP OPTION UNITS */ 02962000 * BIT(1), /* 0-VALUE IS IN MINUTES 1-VALUE 02963000 * IS IN HOURS */ 02964000 * 3 * CHAR(1), 0626 02965000 * 3 TMCOSTPV /* STOP OPTION VALUE */ 02966000 * FIXED(15), /* 1-168 HOURS, 1-10080 MINUTES 02967000 * (1 WEEK) */ 02968000 * 2 TMCOOPI /* OPERATOR INTERVENTION OPTION */ 02969000 * FIXED(31), 0626 02970000 * 3 TMCOOPIF /* OPI OPTION FLAGS */ 02971000 * BIT(8), 0626 02972000 * 4 TMCOOPIC /* OPI OPTION CONTROL */ 02973000 * BIT(1), /* 0-OPTION HAS BEEN SPECIFIED 0626 02974000 * 1-OPTION NOT YET SPECIFIED */ 02975000 * 3 * CHAR(2), 0626 02976000 * 3 TMCOOPIL /* OPI OPTION VALUE AREA */ 02977000 * CHAR(1), 0626 02978000 * 4 * BIT(7), 0626 02979000 * 4 TMCOOPIV /* OPI OPTION VALUE FLAG */ 02980000 * BIT(1), /* 0-DO NOT LIST OPTIONS, 1-LIST 02981000 * OPTIONS */ 02982000 * 2 TMCOMEM /* MEMBER OPTION */ 02983000 * FIXED(31), 0626 02984000 * 3 TMCOMEMF /* MEMBER OPTION FLAGS */ 02985000 * BIT(8), 0626 02986000 * 4 TMCOMEMC /* MEMBER OPTION CONTROL */ 02987000 * BIT(1), 0626 02988000 * 3 * CHAR(1), 0626 02989000 * 3 TMCOMEMV /* MEMBER OPTION VALUE */ 02990000 * CHAR(2), /* MF/1 OPTION DATA SET SUFFIX */ 02991000 * 1 TMCOOPTN /* OPTION ARRAY */ 02992000 * (*)BIT(32)DEFINED(TMCOA), 0626 02993000 * 2 TMCOCTRL /* OPTION CONTROL */ 02994000 * BIT(1); 0626 02995000 * 0626 02996000 */**** START OF SPECIFICATIONS ***************************************/ 02997000 */* */ 02998000 */* MACCOMP Y-2 SC1CQ/GAM20 */ 02999000 */* MACSTAT Y-2 73121/Y02150 */ 03000000 */* MACMEAN TMMVT MEANS MEASUREMENT VECTOR TABLE */ 03001000 */* */ 03002000 */* MODULE-NAME = IRBDTMVT */ 03003000 */* IRBINMVT */ 03004000 */* IRBMFMVT */ 03005000 */* IRBSTMVT */ 03006000 */* IRBTMMVT */ 03007000 */* */ 03008000 */* DESCRIPTIVE-NAME = MEASUREMENT VECTOR TABLE */ 03009000 */* */ 03010000 */* COPYRIGHT = NONE */ 03011000 */* */ 03012000 */* STATUS = RELEASE 2, VERSION 0 */ 03013000 */* */ 03014000 */* FUNCTION = MAPPING MACRO FOR THE MVT. FOR EACH MF/1 MEASUREMENT,*/ 03015000 */* MVT CONTAINS A POINTER TO TO MEASUREMENT DATA, CONTROL*/ 03016000 */* DATA, OR A LIST OF MEASUREMENT DATA OR CONTROL */ 03017000 */* POINTERS. */ 03018000 */* */ 03019000 */* NOTES = SEE BELOW */ 03020000 */* */ 03021000 */* MULTIPLE MACRO NAMES ALLOWS A PROGRAM TO HAVE MULTIPLE COPIES */ 03022000 */* OF THE SAME DATA STRUCTURE FOR DIFFERENT USES, EACH WITH ITS */ 03023000 */* OWN IMPLICIT POINTER AND ATTRIBUTES. */ 03024000 */* */ 03025000 */* MODULE-TYPE = PLS MAPPING MACRO */ 03026000 */* */ 03027000 */* CHANGE-ACTIVITY = */ 03028000 */* */ 03029000 */* A000000-999999 Y02150*/ 03030000 */* */ 03031000 */* METHOD-OF-INVOCATION = SEE BELOW */ 03032000 */* */ 03033000 */* PLS - .QUESTION MARK.IRBDTMVT ATTRIBUT(ATTRIBUTES) */ 03034000 */* - .QUESTION MARK.IRBINMVT ATTRIBUT(ATTRIBUTES) */ 03035000 */* - .QUESTION MARK.IRBMFMVT ATTRIBUT(ATTRIBUTES) */ 03036000 */* - .QUESTION MARK.IRBSTMVT ATTRIBUT(ATTRIBUTES) */ 03037000 */* - .QUESTION MARK.IRBTMMVT ATTRIBUT(ATTRIBUTES) */ 03038000 */* WHERE ATTRIBUTES ARE ANY ACCEPTABLE PLS ATTRIBUTES */ 03039000 */* FOR STRUCTURE DECLARATIONS. */ 03040000 */* */ 03041000 */**** END OF SPECIFICATIONS *****************************************/ 03042000 * 0627 03043000 * /*****************************************************************/ 03044000 * /* */ 03045000 * /* ?IRBTMMVT ATTRIBUT(BASED(LIMVTPTR)) */ 03046000 * /* */ 03047000 * /*****************************************************************/ 03048000 * 0627 03049000 * DECLARE 0627 03050000 * 1 TMMVT /* MEASUREMENT VECTOR TABLE */ 03051000 * BASED(LIMVTPTR)BDY(WORD), 0627 03052000 * 2 TMMVNUM /* NUMBER OF MEASUREMENT OPTIONS */ 03053000 * FIXED(31), 0627 03054000 * 2 TMMVOPT, /* OPTION FIELDS */ 03055000 * 3 TMMVCPU /* CPU DATA/VECTOR */ 03056000 * PTR(31), 0627 03057000 * 3 TMMVPAG /* PAGING DATA/VECTOR */ 03058000 * PTR(31), 0627 03059000 * 3 TMMVWKL /* WORKLOAD DATA/VECTOR */ 03060000 * PTR(31), 0627 03061000 * 3 TMMVCHA /* CHANNEL DATA/VECTOR */ 03062000 * PTR(31), 0627 03063000 * 3 TMMVDEV /* DEVICE DATA/VECTOR */ 03064000 * PTR(31), 0627 03065000 * TMMVADD /* DATA ADDRESS,GENERAL REFERENCE*/ 03066000 * (5) /* NUMBER OF MEASUREMENT OPTIONS */ 03067000 * PTR(31)DEFINED(TMMVOPT); 0627 03068000 * DECLARE 0628 03069000 * LISYSTEM /* WKLD(SYSTEM) SPECIFIED */ 03070000 * BIT(2)CONSTANT('01'B), 0628 03071000 * LIGROUP /* WKLD(GROUP) SPECIFIED */ 03072000 * BIT(2)CONSTANT('10'B), 0628 03073000 * LIPERIOD /* WKLD(PERIOD) SPECIFIED */ 03074000 * BIT(2)CONSTANT('11'B), 0628 03075000 * LINOSTOP /* NOSTOP SPECIFIED */ 03076000 * BIT(1)CONSTANT('1'B), 0628 03077000 * LISTPMIN /* STOP TIME IN MINUTES */ 03078000 * BIT(1)CONSTANT('0'B), 0628 03079000 * LINORPRT /* NOREPORT SPECIFIED */ 03080000 * BIT(2)CONSTANT('00'B), 0628 03081000 * LIDEFER /* REPORT(DEFER) SPECIFIED */ 03082000 * BIT(2)CONSTANT('01'B), 0628 03083000 * LIREALTM /* REPORT(REALTIME) */ 03084000 * BIT(2)CONSTANT('10'B), 0628 03085000 * LINOWKLD /* NOWKLD SPECIFIED */ 03086000 * BIT(2)CONSTANT('00'B), 0628 03087000 * LIOPTSET /* OPI OPTION SET */ 03088000 * BIT(1)CONSTANT('1'B), 0628 03089000 * LICONTRL /* DEVICE OPTION CONTROL INDEX */ 03090000 * FIXED(8)CONSTANT(1), 0628 03091000 * LIALLSET /* ALL DEVICE CONTROL FLAGS SET */ 03092000 * BIT(8)CONSTANT('00'X), 0628 03093000 * LINODEV /* ALL DEVICE STATUS FLAGS OFF */ 03094000 * BIT(8)CONSTANT('00'X), 0628 03095000 * LISTATUS /* OPTION STATUS BYTE */ 03096000 * FIXED(8)CONSTANT(2), 0628 03097000 * LINDXNUM(10) /* MSG INDEX NUMBER ARRAY */ 03098000 * FIXED(15), 0628 03099000 * LICOAPTR /* PARAMETER 2 - PTR TO COA TO 0628 03100000 * LIST */ 03101000 * POINTER(31), 0628 03102000 * LIMVTPTR /* PARAMETER 3 - PTR TO MVT TO 0628 03103000 * LIST */ 03104000 * POINTER(31), 0628 03105000 * LICTLSET /* OPTION SET */ 03106000 * BIT(1)CONSTANT('0'B), 0628 03107000 * LIONEMSG /* INDICATES AT LEAST ONE OPTION 03108000 * WAS SET */ 03109000 * BIT(1), 0628 03110000 * LINDX /* MSG INDEX NUMBER */ 03111000 * FIXED(31), 0628 03112000 * LICNVADR /* CONVERT ROUTINE ADDRESS */ 03113000 * PTR(31), 0628 03114000 * LICNVMOD /* ENTRY POINT TO CONVERT ROUTINE*/ 03115000 * ENTRY BASED(LICNVADR), 0628 03116000 * LISCALE /* CONVERT ROUTINE PARM */ 03117000 * FIXED(31)CONSTANT(0), 0628 03118000 * LISTRLEN /* CONVERT ROUTINE PARM */ 03119000 * FIXED(31), 0628 03120000 * LISTRNG /* CONVERT ROUTINE PARM */ 03121000 * CHAR(6), 0628 03122000 * LIDIGIT /* CONVERT ROUTINE PARM */ 03123000 * FIXED(31)CONSTANT(0), 0628 03124000 * LICOMMA /* CONVERT ROUTINE PARM */ 03125000 * BIT(1)CONSTANT('0'B), 0628 03126000 * LIFLOAT /* CONVERT ROUTINE PARM */ 03127000 * BIT(1)CONSTANT('0'B), 0628 03128000 * 1 LIVTXLST(6), /* VARIABLE TEXT LIST ARRAY */ 03129000 * 2 LIPARTNO /* MSG PART NUMBER */ 03130000 * FIXED(15), 0628 03131000 * 2 LITXTLEN /* LENGTH OF VARIABLE TEXT */ 03132000 * FIXED(15), 0628 03133000 * 2 LIVARTXT /* VARIABLE TEXT */ 03134000 * CHAR(6); 0628 03135000 * LIONEMSG='0'B; /* INITIALIZE NO OPTIONS SET AND 03136000 * NO MESSAGES ISSUED */ 03137000 * 0629 03138000 NI LIONEMSG,B'01111111' 0629 03139000 */* SET UP POINTERS TO MAXIMUM NUMBER OF VARIABLE TEXT LIST */ 03140000 * 0630 03141000 * INVTXLST(1)=ADDR(LIPARTNO(1)); 0630 03142000 LA @15,LIPARTNO 0630 03143000 ST @15,INVTXLST 0630 03144000 * INVTXLST(2)=ADDR(LIPARTNO(2)); 0631 03145000 LA @15,LIPARTNO+10 0631 03146000 ST @15,INVTXLST+4 0631 03147000 * INVTXLST(3)=ADDR(LIPARTNO(3)); 0632 03148000 LA @15,LIPARTNO+20 0632 03149000 ST @15,INVTXLST+8 0632 03150000 * INVTXLST(4)=ADDR(LIPARTNO(4)); 0633 03151000 LA @15,LIPARTNO+30 0633 03152000 ST @15,INVTXLST+12 0633 03153000 * INVTXLST(5)=ADDR(LIPARTNO(5)); 0634 03154000 LA @15,LIPARTNO+40 0634 03155000 ST @15,INVTXLST+16 0634 03156000 * INVTXLST(6)=ADDR(LIPARTNO(6)); 0635 03157000 LA @15,LIPARTNO+50 0635 03158000 ST @15,INVTXLST+20 0635 03159000 * IF TMMVCPU->MFPMCON=LICTLSET THEN/* CPU OPTION SET */ 03160000 L @15,@PC00013+8 0636 03161000 L @01,LIMVTPTR(,@15) 0636 03162000 L @15,TMMVCPU(,@01) 0636 03163000 TM MFPMCON(@15),B'10000000' 0636 03164000 BNZ @RF00636 0636 03165000 * DO; /* SEND MESSAGE FOR THIS OPTION */ 03166000 * LIONEMSG='1'B; /* INDICATE ONE MSG SENT */ 03167000 OI LIONEMSG,B'10000000' 0638 03168000 * IF TMMVCPU->MFPMSTA=LIOPTSET THEN/* 'CPU' MEASUREMENT 0639 03169000 * REQUESTED? */ 03170000 TM MFPMSTA(@15),B'00000001' 0639 03171000 BNO @RF00639 0639 03172000 * LIPARTNO(1)=LMPART27; /* MSG PART NO. FOR CPU */ 03173000 MVC LIPARTNO(2),@CH00610 0640 03174000 * ELSE /* 'NOCPU' REQUESTED */ 03175000 * LIPARTNO(1)=LMPART28; /* MSG PART NO. FOR NOCPU */ 03176000 B @RC00639 0641 03177000 @RF00639 MVC LIPARTNO(2),@CH00612 0641 03178000 * LINDX=LINDXNUM(1); /* INDEX NUMBER FOR CPU|NOCPU */ 03179000 @RC00639 L @15,@PC00013 0642 03180000 LH @15,LINDXNUM(,@15) 0642 03181000 ST @15,LINDX 0642 03182000 * CALL INMSGMOD(LINDX,INVTXLST,0,INMDCBAD);/* ISSUE MESSAGE */ 03183000 LA @15,LINDX 0643 03184000 ST @15,@AL00001 0643 03185000 LA @15,INVTXLST 0643 03186000 ST @15,@AL00001+4 0643 03187000 LA @15,@CF00945 0643 03188000 ST @15,@AL00001+8 0643 03189000 LA @15,INMDCBAD 0643 03190000 ST @15,@AL00001+12 0643 03191000 L @15,INMSGADR 0643 03192000 LA @01,@AL00001 0643 03193000 BALR @14,@15 0643 03194000 * END; 0644 03195000 * 0644 03196000 */* NOTE: MESSAGES IRB305I AND IRB309I DO NOT REFERENCE THE DCB ADDR 03197000 * BUT THE PARAMETER IS PASSED SO THAT WHEN THIS SUBROUTINE IS 0645 03198000 * CALLED FOR MESSAGE IRB103I WHICH USES A DCB ADDRESS, IT WILL 0645 03199000 * ALWAYS BE PROVIDED. THE MESSAGE PROCESSOR WILL NOT CALL FOR A DCB 03200000 * ADDRESS FOR MESSAGES IRB305I AND IRB309I. */ 03201000 * 0645 03202000 * IF TMMVPAG->MFPMCON=LICTLSET THEN/* PAG OPTION SET */ 03203000 @RF00636 L @15,@PC00013+8 0645 03204000 L @01,LIMVTPTR(,@15) 0645 03205000 L @15,TMMVPAG(,@01) 0645 03206000 TM MFPMCON(@15),B'10000000' 0645 03207000 BNZ @RF00645 0645 03208000 * DO; /* SEND MESSAGE FOR THIS OPTION */ 03209000 * LIONEMSG='1'B; /* INDICATE ONE MSG SENT */ 03210000 OI LIONEMSG,B'10000000' 0647 03211000 * IF TMMVPAG->MFPMSTA=LIOPTSET THEN/* 'PAGING' REQUESTED? */ 03212000 TM MFPMSTA(@15),B'00000001' 0648 03213000 BNO @RF00648 0648 03214000 * LIPARTNO(1)=LMPART30; /* MSG PART NO. FOR PAGING */ 03215000 MVC LIPARTNO(2),@CH00616 0649 03216000 * ELSE /* 'NOPAGING' REQUESTED */ 03217000 * LIPARTNO(1)=LMPART29; /* MSG PART NO. FOR NOPAGING */ 03218000 B @RC00648 0650 03219000 @RF00648 MVC LIPARTNO(2),@CH00614 0650 03220000 * LINDX=LINDXNUM(1); /* INDEX NUMBER FOR PAGING|NOPAG.*/ 03221000 @RC00648 L @15,@PC00013 0651 03222000 LH @15,LINDXNUM(,@15) 0651 03223000 ST @15,LINDX 0651 03224000 * CALL INMSGMOD(LINDX,INVTXLST,0,INMDCBAD);/* ISSUE MESSAGE */ 03225000 LA @15,LINDX 0652 03226000 ST @15,@AL00001 0652 03227000 LA @15,INVTXLST 0652 03228000 ST @15,@AL00001+4 0652 03229000 LA @15,@CF00945 0652 03230000 ST @15,@AL00001+8 0652 03231000 LA @15,INMDCBAD 0652 03232000 ST @15,@AL00001+12 0652 03233000 L @15,INMSGADR 0652 03234000 LA @01,@AL00001 0652 03235000 BALR @14,@15 0652 03236000 * END; 0653 03237000 * IF TMMVCHA->MFPMCON=LICTLSET THEN/* CHA OPTION SET */ 03238000 @RF00645 L @15,@PC00013+8 0654 03239000 L @01,LIMVTPTR(,@15) 0654 03240000 L @15,TMMVCHA(,@01) 0654 03241000 TM MFPMCON(@15),B'10000000' 0654 03242000 BNZ @RF00654 0654 03243000 * DO; /* SEND MESSAGE FOR THIS OPTION */ 03244000 * LIONEMSG='1'B; /* INDICATE ONE MSG SENT */ 03245000 OI LIONEMSG,B'10000000' 0656 03246000 * IF TMMVCHA->MFPMSTA=LIOPTSET THEN/* 'CHAN' REQUESTED? */ 03247000 TM MFPMSTA(@15),B'00000001' 0657 03248000 BNO @RF00657 0657 03249000 * LIPARTNO(1)=LMPART31; /* MSG PART NO. FOR CHAN */ 03250000 MVC LIPARTNO(2),@CH00045 0658 03251000 * ELSE /* 'NOCHAN' REQUESTED */ 03252000 * LIPARTNO(1)=LMPART51; /* MSG PART NO. FOR NOCHAN */ 03253000 B @RC00657 0659 03254000 @RF00657 MVC LIPARTNO(2),@CH00703 0659 03255000 * LINDX=LINDXNUM(1); 0660 03256000 @RC00657 L @15,@PC00013 0660 03257000 LH @15,LINDXNUM(,@15) 0660 03258000 ST @15,LINDX 0660 03259000 * CALL INMSGMOD(LINDX,INVTXLST,0,INMDCBAD);/* ISSUE MESSAGE */ 03260000 LA @15,LINDX 0661 03261000 ST @15,@AL00001 0661 03262000 LA @15,INVTXLST 0661 03263000 ST @15,@AL00001+4 0661 03264000 LA @15,@CF00945 0661 03265000 ST @15,@AL00001+8 0661 03266000 LA @15,INMDCBAD 0661 03267000 ST @15,@AL00001+12 0661 03268000 L @15,INMSGADR 0661 03269000 LA @01,@AL00001 0661 03270000 BALR @14,@15 0661 03271000 * END; 0662 03272000 * IF TMMVWKL->MFPMCON=LICTLSET THEN/* WKL OPTION SET */ 03273000 @RF00654 L @15,@PC00013+8 0663 03274000 L @01,LIMVTPTR(,@15) 0663 03275000 L @15,TMMVWKL(,@01) 0663 03276000 TM MFPMCON(@15),B'10000000' 0663 03277000 BNZ @RF00663 0663 03278000 * DO; /* SEND MESSAGE FOR THIS OPTION */ 03279000 * LIONEMSG='1'B; /* INDICATE ONE MSG SENT */ 03280000 OI LIONEMSG,B'10000000' 0665 03281000 * IF TMMVWKL->MFPMWKLD=LINOWKLD THEN/* 'NOWKLD' REQUESTED? */ 03282000 TM MFPMWKLD(@15),B'00000011' 0666 03283000 BNZ @RF00666 0666 03284000 * DO; /* 'NOWKLD' REQUESTED? */ 03285000 * LIPARTNO(1)=LMPART59; /* MSG PART NO. FOR NOWKLD */ 03286000 MVC LIPARTNO(2),@CH00718 0668 03287000 * LINDX=LINDXNUM(1); 0669 03288000 L @15,@PC00013 0669 03289000 LH @15,LINDXNUM(,@15) 0669 03290000 ST @15,LINDX 0669 03291000 * END; 0670 03292000 * ELSE /* WKLD(WKLDVALUE) WAS SPECIFIED */ 03293000 * DO; 0671 03294000 B @RC00666 0671 03295000 @RF00666 DS 0H 0672 03296000 * IF TMMVWKL->MFPMWKLD=LISYSTEM THEN/* 'WKLD(SYSTEM)' 0672 03297000 * REQUESTED? */ 03298000 L @15,@PC00013+8 0672 03299000 L @01,LIMVTPTR(,@15) 0672 03300000 L @01,TMMVWKL(,@01) 0672 03301000 TM MFPMWKLD(@01),B'00000001' 0672 03302000 BNO @RF00672 0672 03303000 TM MFPMWKLD(@01),B'00000010' 0672 03304000 BNZ @RF00672 0672 03305000 * LIPARTNO(1)=LMPART49; /* MSG PART NO. FOR WKLD(SYSTEM) */ 03306000 MVC LIPARTNO(2),@CH00650 0673 03307000 * IF TMMVWKL->MFPMWKLD=LIGROUP THEN/* 'WKLD(GROUP)' 0674 03308000 * REQUESTED? */ 03309000 @RF00672 L @15,@PC00013+8 0674 03310000 L @01,LIMVTPTR(,@15) 0674 03311000 L @01,TMMVWKL(,@01) 0674 03312000 TM MFPMWKLD(@01),B'00000010' 0674 03313000 BNO @RF00674 0674 03314000 TM MFPMWKLD(@01),B'00000001' 0674 03315000 BNZ @RF00674 0674 03316000 * LIPARTNO(1)=LMPART47; /* MSG PART NO. FOR WKLD(GROUP) */ 03317000 MVC LIPARTNO(2),@CH00647 0675 03318000 * IF TMMVWKL->MFPMWKLD=LIPERIOD THEN/* 'WKLD(PERIOD)' 0676 03319000 * REQUESTED */ 03320000 @RF00674 L @15,@PC00013+8 0676 03321000 L @01,LIMVTPTR(,@15) 0676 03322000 L @01,TMMVWKL(,@01) 0676 03323000 TM MFPMWKLD(@01),B'00000011' 0676 03324000 BNO @RF00676 0676 03325000 * LIPARTNO(1)=LMPART46; /* MSG PART NO. FOR WKLD(PERIOD) */ 03326000 MVC LIPARTNO(2),@CH00645 0677 03327000 * LINDX=LINDXNUM(2); 0678 03328000 @RF00676 L @15,@PC00013 0678 03329000 LH @15,LINDXNUM+2(,@15) 0678 03330000 ST @15,LINDX 0678 03331000 * END; 0679 03332000 * CALL INMSGMOD(LINDX,INVTXLST,0,INMDCBAD);/* ISSUE MESSAGE */ 03333000 @RC00666 LA @15,LINDX 0680 03334000 ST @15,@AL00001 0680 03335000 LA @15,INVTXLST 0680 03336000 ST @15,@AL00001+4 0680 03337000 LA @15,@CF00945 0680 03338000 ST @15,@AL00001+8 0680 03339000 LA @15,INMDCBAD 0680 03340000 ST @15,@AL00001+12 0680 03341000 L @15,INMSGADR 0680 03342000 LA @01,@AL00001 0680 03343000 BALR @14,@15 0680 03344000 * END; 0681 03345000 * IF TMMVDEV->MFPMCON=LICTLSET THEN/* DEV OPTION SET */ 03346000 @RF00663 L @15,@PC00013+8 0682 03347000 L @01,LIMVTPTR(,@15) 0682 03348000 L @15,TMMVDEV(,@01) 0682 03349000 TM MFPMCON(@15),B'10000000' 0682 03350000 BNZ @RF00682 0682 03351000 * DO; /* SEND MESSAGE FOR THIS OPTION */ 03352000 * LIONEMSG='1'B; /* INDICATE ONE MSG SENT */ 03353000 OI LIONEMSG,B'10000000' 0684 03354000 * IF TMMVDEV->MFPMDEVF(LICONTRL)=LIALLSET&TMMVDEV->MFPMDEVF( 0685 03355000 * LISTATUS)=LINODEV THEN /* 'NODEVICE' REQUESTED? */ 03356000 CLI MFPMDEVF(@15),X'00' 0685 03357000 BNE @RF00685 0685 03358000 CLI MFPMDEVF+1(@15),X'00' 0685 03359000 BNE @RF00685 0685 03360000 * DO; 0686 03361000 * LIPARTNO(1)=LMPART52; /* MSG PART NO. FOR NODEVICE */ 03362000 MVC LIPARTNO(2),@CH00250 0687 03363000 * LINDX=LINDXNUM(1); 0688 03364000 L @15,@PC00013 0688 03365000 LH @15,LINDXNUM(,@15) 0688 03366000 ST @15,LINDX 0688 03367000 * CALL INMSGMOD(LINDX,INVTXLST,0,INMDCBAD);/* ISSUE MESSAGE*/ 03368000 LA @15,LINDX 0689 03369000 ST @15,@AL00001 0689 03370000 LA @15,INVTXLST 0689 03371000 ST @15,@AL00001+4 0689 03372000 LA @15,@CF00945 0689 03373000 ST @15,@AL00001+8 0689 03374000 LA @15,INMDCBAD 0689 03375000 ST @15,@AL00001+12 0689 03376000 L @15,INMSGADR 0689 03377000 LA @01,@AL00001 0689 03378000 BALR @14,@15 0689 03379000 * END; 0690 03380000 * ELSE /* DEVICE OPTION SPECIFIED */ 03381000 * DO; 0691 03382000 B @RC00685 0691 03383000 @RF00685 DS 0H 0692 03384000 * IF TMMVDEV->MFPMUNIT(LICONTRL)=LICTLSET THEN/* WAS 0692 03385000 * CONTROL FLAG SET? */ 03386000 L @15,@PC00013+8 0692 03387000 L @01,LIMVTPTR(,@15) 0692 03388000 L @15,TMMVDEV(,@01) 0692 03389000 TM MFPMUNIT(@15),B'00001000' 0692 03390000 BNZ @RF00692 0692 03391000 * DO; 0693 03392000 * IF TMMVDEV->MFPMUNIT(LISTATUS)=LIOPTSET THEN/* 0694 03393000 * 'UNITR' REQUESTED? */ 03394000 TM MFPMUNIT+1(@15),B'00001000' 0694 03395000 BNO @RF00694 0694 03396000 * LIPARTNO(1)=LMPART40;/* 'UNITR' DEVICE PART NO. */ 03397000 MVC LIPARTNO(2),@CH00330 0695 03398000 * ELSE 0696 03399000 * LIPARTNO(1)=LMPART60;/* 'NOUNITR' DEVICE PART NO. */ 03400000 B @RC00694 0696 03401000 @RF00694 MVC LIPARTNO(2),@CH00529 0696 03402000 * END; 0697 03403000 * ELSE /* CONTROL FLAG NOT SET */ 03404000 * DO; /* INSERT NULL STRING */ 03405000 B @RC00692 0698 03406000 @RF00692 DS 0H 0699 03407000 * LIPARTNO(1)=0; 0699 03408000 SR @15,@15 0699 03409000 STH @15,LIPARTNO 0699 03410000 * LITXTLEN(1)=0; 0700 03411000 STH @15,LITXTLEN 0700 03412000 * END; 0701 03413000 * IF TMMVDEV->MFPMGRAP(LICONTRL)=LICTLSET THEN 0702 03414000 @RC00692 L @15,@PC00013+8 0702 03415000 L @01,LIMVTPTR(,@15) 0702 03416000 L @15,TMMVDEV(,@01) 0702 03417000 TM MFPMGRAP(@15),B'00010000' 0702 03418000 BNZ @RF00702 0702 03419000 * DO; /* CONTROL FLAG SET */ 03420000 * IF TMMVDEV->MFPMGRAP(LISTATUS)=LIOPTSET THEN/* 0704 03421000 * 'GRAPH' REQUESTED? */ 03422000 TM MFPMGRAP+1(@15),B'00010000' 0704 03423000 BNO @RF00704 0704 03424000 * LIPARTNO(2)=LMPART44;/* 'GRAPH' DEVICE PART NO. */ 03425000 MVC LIPARTNO+10(2),@CH00641 0705 03426000 * ELSE 0706 03427000 * LIPARTNO(2)=LMPART61;/* 'NOGRAPH' DEVICE PART NO. */ 03428000 B @RC00704 0706 03429000 @RF00704 MVC LIPARTNO+10(2),@CH00721 0706 03430000 * END; 0707 03431000 * ELSE /* CONTROL FLAG NOT SET */ 03432000 * DO; /* INSERT NULL STRING */ 03433000 B @RC00702 0708 03434000 @RF00702 DS 0H 0709 03435000 * LIPARTNO(2)=0; 0709 03436000 SR @15,@15 0709 03437000 STH @15,LIPARTNO+10 0709 03438000 * LITXTLEN(2)=0; 0710 03439000 STH @15,LITXTLEN+10 0710 03440000 * END; 0711 03441000 * IF TMMVDEV->MFPMDA(LICONTRL)=LICTLSET THEN 0712 03442000 @RC00702 L @15,@PC00013+8 0712 03443000 L @01,LIMVTPTR(,@15) 0712 03444000 L @15,TMMVDEV(,@01) 0712 03445000 TM MFPMDA(@15),B'00100000' 0712 03446000 BNZ @RF00712 0712 03447000 * DO; /* CONTROL FLAG SET */ 03448000 * IF TMMVDEV->MFPMDA(LISTATUS)=LIOPTSET THEN/* 'DASD' 03449000 * REQUESTED? */ 03450000 TM MFPMDA+1(@15),B'00100000' 0714 03451000 BNO @RF00714 0714 03452000 * LIPARTNO(3)=LMPART42;/* 'DASD' DEVICE PART NO. */ 03453000 MVC LIPARTNO+20(2),@CH00637 0715 03454000 * ELSE 0716 03455000 * LIPARTNO(3)=LMPART62;/* 'NODASD' DEVICE PART NO. */ 03456000 B @RC00714 0716 03457000 @RF00714 MVC LIPARTNO+20(2),@CH00723 0716 03458000 * END; 0717 03459000 * ELSE /* CONTROL FLAG NOT SET */ 03460000 * DO; /* INSERT NULL STRING */ 03461000 B @RC00712 0718 03462000 @RF00712 DS 0H 0719 03463000 * LIPARTNO(3)=0; 0719 03464000 SR @15,@15 0719 03465000 STH @15,LIPARTNO+20 0719 03466000 * LITXTLEN(3)=0; 0720 03467000 STH @15,LITXTLEN+20 0720 03468000 * END; 0721 03469000 * IF TMMVDEV->MFPMTP(LICONTRL)=LICTLSET THEN 0722 03470000 @RC00712 L @15,@PC00013+8 0722 03471000 L @01,LIMVTPTR(,@15) 0722 03472000 L @15,TMMVDEV(,@01) 0722 03473000 TM MFPMTP(@15),B'01000000' 0722 03474000 BNZ @RF00722 0722 03475000 * DO; /* CONTROL FLAG SET */ 03476000 * IF TMMVDEV->MFPMTP(LISTATUS)=LIOPTSET THEN/* 'COMM' 03477000 * REQUESTED */ 03478000 TM MFPMTP+1(@15),B'01000000' 0724 03479000 BNO @RF00724 0724 03480000 * LIPARTNO(4)=LMPART43;/* 'COMM' DEVICE PART NO. */ 03481000 MVC LIPARTNO+30(2),@CH00639 0725 03482000 * ELSE 0726 03483000 * LIPARTNO(4)=LMPART63;/* 'NOCOMM' DEVICE PART NO. */ 03484000 B @RC00724 0726 03485000 @RF00724 MVC LIPARTNO+30(2),@CH00725 0726 03486000 * END; 0727 03487000 * ELSE /* CONTROL FLAG NOT SET */ 03488000 * DO; /* INSERT NULL STRING */ 03489000 B @RC00722 0728 03490000 @RF00722 DS 0H 0729 03491000 * LIPARTNO(4)=0; 0729 03492000 SR @15,@15 0729 03493000 STH @15,LIPARTNO+30 0729 03494000 * LITXTLEN(4)=0; 0730 03495000 STH @15,LITXTLEN+30 0730 03496000 * END; 0731 03497000 * IF TMMVDEV->MFPMTAPE(LICONTRL)=LICTLSET THEN 0732 03498000 @RC00722 L @15,@PC00013+8 0732 03499000 L @01,LIMVTPTR(,@15) 0732 03500000 L @15,TMMVDEV(,@01) 0732 03501000 TM MFPMTAPE(@15),B'10000000' 0732 03502000 BNZ @RF00732 0732 03503000 * DO; /* CONTROL FLAG SET */ 03504000 * IF TMMVDEV->MFPMTAPE(LISTATUS)=LIOPTSET THEN/* 'TAPE' 03505000 * REQUESTED */ 03506000 TM MFPMTAPE+1(@15),B'10000000' 0734 03507000 BNO @RF00734 0734 03508000 * LIPARTNO(5)=LMPART41;/* 'TAPE' DEVICE PART NO. */ 03509000 MVC LIPARTNO+40(2),@CH00635 0735 03510000 * ELSE 0736 03511000 * LIPARTNO(5)=LMPART64;/* 'NOTAPE' DEVICE */ 03512000 B @RC00734 0736 03513000 @RF00734 MVC LIPARTNO+40(2),@CH00727 0736 03514000 * END; 0737 03515000 * ELSE /* CONTROL FLAG NOT SET */ 03516000 * DO; /* INSERT NULL STRING */ 03517000 B @RC00732 0738 03518000 @RF00732 DS 0H 0739 03519000 * LIPARTNO(5)=0; 0739 03520000 SR @15,@15 0739 03521000 STH @15,LIPARTNO+40 0739 03522000 * LITXTLEN(5)=0; 0740 03523000 STH @15,LITXTLEN+40 0740 03524000 * END; 0741 03525000 * IF TMMVDEV->MFPMCRDR(LICONTRL)=LICTLSET THEN 0742 03526000 @RC00732 L @15,@PC00013+8 0742 03527000 L @01,LIMVTPTR(,@15) 0742 03528000 L @15,TMMVDEV(,@01) 0742 03529000 TM MFPMCRDR(@15),B'00000100' 0742 03530000 BNZ @RF00742 0742 03531000 * DO; /* CONTROL FLAG SET */ 03532000 * IF TMMVDEV->MFPMCRDR(LISTATUS)=LIOPTSET THEN/* 0744 03533000 * 'CHRDR' REQUESTED? */ 03534000 TM MFPMCRDR+1(@15),B'00000100' 0744 03535000 BNO @RF00744 0744 03536000 * LIPARTNO(6)=LMPART65;/* 'CHRDR' DEVICE PART NO. */ 03537000 MVC LIPARTNO+50(2),@CH00729 0745 03538000 * ELSE 0746 03539000 * LIPARTNO(6)=LMPART66;/* 'NOCHRDR' DEVICE PART NO. */ 03540000 B @RC00744 0746 03541000 @RF00744 MVC LIPARTNO+50(2),@CH00731 0746 03542000 * END; 0747 03543000 * ELSE /* CONTROL FLAG NOT SET */ 03544000 * DO; /* INSERT NULL STRING */ 03545000 B @RC00742 0748 03546000 @RF00742 DS 0H 0749 03547000 * LIPARTNO(6)=0; 0749 03548000 SR @15,@15 0749 03549000 STH @15,LIPARTNO+50 0749 03550000 * LITXTLEN(6)=0; 0750 03551000 STH @15,LITXTLEN+50 0750 03552000 * END; 0751 03553000 * LINDX=LINDXNUM(8); 0752 03554000 @RC00742 L @15,@PC00013 0752 03555000 LH @15,LINDXNUM+14(,@15) 0752 03556000 ST @15,LINDX 0752 03557000 * CALL INMSGMOD(LINDX,INVTXLST,0,INMDCBAD);/* ISSUE MESSAGE*/ 03558000 LA @15,LINDX 0753 03559000 ST @15,@AL00001 0753 03560000 LA @15,INVTXLST 0753 03561000 ST @15,@AL00001+4 0753 03562000 LA @15,@CF00945 0753 03563000 ST @15,@AL00001+8 0753 03564000 LA @15,INMDCBAD 0753 03565000 ST @15,@AL00001+12 0753 03566000 L @15,INMSGADR 0753 03567000 LA @01,@AL00001 0753 03568000 BALR @14,@15 0753 03569000 * END; 0754 03570000 * END; 0755 03571000 @RC00685 DS 0H 0756 03572000 * IF TMCOTCEC=LICTLSET THEN /* TRACE OPTION SET */ 03573000 @RF00682 L @15,@PC00013+4 0756 03574000 L @15,LICOAPTR(,@15) 0756 03575000 TM TMCOTCEC(@15),B'10000000' 0756 03576000 BNZ @RF00756 0756 03577000 * DO; /* SEND MESSAGE FOR THIS OPTION */ 03578000 * LIONEMSG='1'B; /* INDICATE ONE MSG SENT */ 03579000 OI LIONEMSG,B'10000000' 0758 03580000 * IF TMCOTCEV=LIOPTSET THEN /* 'TRACE' REQUESTED? */ 03581000 TM TMCOTCEV(@15),B'00000001' 0759 03582000 BNO @RF00759 0759 03583000 * LIPARTNO(1)=LMPART33; /* MSG PART NO. FOR TRACE */ 03584000 MVC LIPARTNO(2),@CH00620 0760 03585000 * ELSE 0761 03586000 * LIPARTNO(1)=LMPART56; /* MSG PART NO. FOR NOTRACE */ 03587000 B @RC00759 0761 03588000 @RF00759 MVC LIPARTNO(2),@CH00712 0761 03589000 * LINDX=LINDXNUM(1); 0762 03590000 @RC00759 L @15,@PC00013 0762 03591000 LH @15,LINDXNUM(,@15) 0762 03592000 ST @15,LINDX 0762 03593000 * CALL INMSGMOD(LINDX,INVTXLST,0,INMDCBAD);/* ISSUE MESSAGE */ 03594000 LA @15,LINDX 0763 03595000 ST @15,@AL00001 0763 03596000 LA @15,INVTXLST 0763 03597000 ST @15,@AL00001+4 0763 03598000 LA @15,@CF00945 0763 03599000 ST @15,@AL00001+8 0763 03600000 LA @15,INMDCBAD 0763 03601000 ST @15,@AL00001+12 0763 03602000 L @15,INMSGADR 0763 03603000 LA @01,@AL00001 0763 03604000 BALR @14,@15 0763 03605000 * END; 0764 03606000 * 0764 03607000 * /*****************************************************************/ 03608000 * /* */ 03609000 * /* CYCLE,INTERVAL,AND STOP VALUES NEED CONVERTING. IRBMFCNV IS */ 03610000 * /* CALLED TO PERFORM THE CONVERSION */ 03611000 * /* */ 03612000 * /*****************************************************************/ 03613000 * 0765 03614000 * INMODULE='IRBMFCNV'; 0765 03615000 @RF00756 MVC INMODULE(8),@CC01283 0765 03616000 * RFY 0766 03617000 * (GPR00P, 0766 03618000 * GPR01P, 0766 03619000 * GPR14P, 0766 03620000 * GPR15F)RSTD; 0766 03621000 * GENERATE; 0767 03622000 LOAD EPLOC=INMODULE 03623000 * LICNVADR=GPR00P; 0768 03624000 ST GPR00P,LICNVADR 0768 03625000 * RFY 0769 03626000 * (GPR00P, 0769 03627000 * GPR01P, 0769 03628000 * GPR14P, 0769 03629000 * GPR15F)UNRSTD; 0769 03630000 * IF TMCOCYCC=LICTLSET THEN /* CYCLE OPTION SET */ 03631000 L @15,@PC00013+4 0770 03632000 L @15,LICOAPTR(,@15) 0770 03633000 TM TMCOCYCC(@15),B'10000000' 0770 03634000 BNZ @RF00770 0770 03635000 * DO; /* SEND MESSAGE FOR THIS OPTION */ 03636000 * LIONEMSG='1'B; /* INDICATE ONE MSG SENT */ 03637000 OI LIONEMSG,B'10000000' 0772 03638000 * LISTRLEN=3; 0773 03639000 MVC LISTRLEN(4),@CF00311 0773 03640000 * CALL LICNVMOD(EVAL(TMCOCYCV),LISCALE,LISTRNG,LISTRLEN,LIDIGIT, 03641000 * LICOMMA,LIFLOAT); /* CONVERT VALUE */ 03642000 MVC @AL00001+4(24),@AL00774 0774 03643000 LH @15,TMCOCYCV(,@15) 0774 03644000 ST @15,@AFTEMPS+16 0774 03645000 LA @15,@AFTEMPS+16 0774 03646000 ST @15,@AL00001 0774 03647000 LA @15,LISTRNG 0774 03648000 ST @15,@AL00001+8 0774 03649000 LA @15,LISTRLEN 0774 03650000 ST @15,@AL00001+12 0774 03651000 L @14,LICNVADR 0774 03652000 LR @15,@14 0774 03653000 LA @01,@AL00001 0774 03654000 BALR @14,@15 0774 03655000 * LIVARTXT(1)=LISTRNG(1:LISTRLEN);/* MOVE INTO LIST CYCLE VALUE*/ 03656000 MVI LIVARTXT+1,C' ' 0775 03657000 MVC LIVARTXT+2(4),LIVARTXT+1 0775 03658000 L @15,LISTRLEN 0775 03659000 LR @14,@15 0775 03660000 BCTR @14,0 0775 03661000 EX @14,@SM01514 0775 03662000 * LITXTLEN(1)=LISTRLEN; 0776 03663000 STH @15,LITXTLEN 0776 03664000 * IF LIVARTXT(1,1)=' ' THEN /* A LEADING BLANK? */ 03665000 CLI LIVARTXT,C' ' 0777 03666000 BNE @RF00777 0777 03667000 * DO; /* REMOVE LEADING BLANK */ 03668000 * LIVARTXT(1,1:LISTRLEN-1)=LIVARTXT(1,2:LISTRLEN); 0779 03669000 BCTR @15,0 0779 03670000 BCTR @15,0 0779 03671000 MVC @TS00001(6),LIVARTXT+1 0779 03672000 EX @15,@SM01516 0779 03673000 * LITXTLEN(1)=LISTRLEN-1; 0780 03674000 STH @14,LITXTLEN 0780 03675000 * END; 0781 03676000 * LIPARTNO(1)=0; 0782 03677000 @RF00777 SR @15,@15 0782 03678000 STH @15,LIPARTNO 0782 03679000 * LINDX=LINDXNUM(5); 0783 03680000 L @15,@PC00013 0783 03681000 LH @15,LINDXNUM+8(,@15) 0783 03682000 ST @15,LINDX 0783 03683000 * CALL INMSGMOD(LINDX,INVTXLST,0,INMDCBAD);/* ISSUE MESSAGE */ 03684000 LA @15,LINDX 0784 03685000 ST @15,@AL00001 0784 03686000 LA @15,INVTXLST 0784 03687000 ST @15,@AL00001+4 0784 03688000 LA @15,@CF00945 0784 03689000 ST @15,@AL00001+8 0784 03690000 LA @15,INMDCBAD 0784 03691000 ST @15,@AL00001+12 0784 03692000 L @15,INMSGADR 0784 03693000 LA @01,@AL00001 0784 03694000 BALR @14,@15 0784 03695000 * END; 0785 03696000 * IF TMCOINTC=LICTLSET THEN /* INTERVAL OPTION SET */ 03697000 @RF00770 L @15,@PC00013+4 0786 03698000 L @15,LICOAPTR(,@15) 0786 03699000 TM TMCOINTC(@15),B'10000000' 0786 03700000 BNZ @RF00786 0786 03701000 * DO; /* SEND MESSAGE FOR THIS OPTION */ 03702000 * LIONEMSG='1'B; /* INDICATE ONE MSG SENT */ 03703000 OI LIONEMSG,B'10000000' 0788 03704000 * LISTRLEN=2; 0789 03705000 MVC LISTRLEN(4),@CF00078 0789 03706000 * CALL LICNVMOD(EVAL(TMCOINTV),LISCALE,LISTRNG,LISTRLEN,LIDIGIT, 03707000 * LICOMMA,LIFLOAT); /* CONVERT VALUE */ 03708000 MVC @AL00001+4(24),@AL00790 0790 03709000 LH @15,TMCOINTV(,@15) 0790 03710000 ST @15,@AFTEMPS+16 0790 03711000 LA @15,@AFTEMPS+16 0790 03712000 ST @15,@AL00001 0790 03713000 LA @15,LISTRNG 0790 03714000 ST @15,@AL00001+8 0790 03715000 LA @15,LISTRLEN 0790 03716000 ST @15,@AL00001+12 0790 03717000 L @15,LICNVADR 0790 03718000 LA @01,@AL00001 0790 03719000 BALR @14,@15 0790 03720000 * LISTRNG(3)='M'; /* TIME IN MINUTES */ 03721000 MVI LISTRNG+2,C'M' 0791 03722000 * LIVARTXT(1)=LISTRNG; /* MOVE IN INTERVAL VALUE */ 03723000 MVC LIVARTXT(6),LISTRNG 0792 03724000 * LITXTLEN(1)=3; 0793 03725000 MVC LITXTLEN(2),@CH00311 0793 03726000 * IF LIVARTXT(1,1)=' ' THEN /* LEADING BLANK? */ 03727000 CLI LIVARTXT,C' ' 0794 03728000 BNE @RF00794 0794 03729000 * DO; 0795 03730000 * LIVARTXT(1,1:2)=LIVARTXT(1,2:3);/* MOVE OVER ONE CHAR */ 03731000 MVC @TS00001(2),LIVARTXT+1 0796 03732000 MVC LIVARTXT(2),@TS00001 0796 03733000 * LITXTLEN(1)=2; /* CHANGE LENGTH */ 03734000 MVC LITXTLEN(2),@CH00078 0797 03735000 * END; 0798 03736000 * LIPARTNO(1)=0; 0799 03737000 @RF00794 SR @15,@15 0799 03738000 STH @15,LIPARTNO 0799 03739000 * LINDX=LINDXNUM(4); 0800 03740000 L @15,@PC00013 0800 03741000 LH @15,LINDXNUM+6(,@15) 0800 03742000 ST @15,LINDX 0800 03743000 * CALL INMSGMOD(LINDX,INVTXLST,0,INMDCBAD);/* ISSUE MESSAGE */ 03744000 LA @15,LINDX 0801 03745000 ST @15,@AL00001 0801 03746000 LA @15,INVTXLST 0801 03747000 ST @15,@AL00001+4 0801 03748000 LA @15,@CF00945 0801 03749000 ST @15,@AL00001+8 0801 03750000 LA @15,INMDCBAD 0801 03751000 ST @15,@AL00001+12 0801 03752000 L @15,INMSGADR 0801 03753000 LA @01,@AL00001 0801 03754000 BALR @14,@15 0801 03755000 * END; 0802 03756000 * IF TMCOSTPC=LICTLSET THEN /* STOP OPTION SET */ 03757000 @RF00786 L @15,@PC00013+4 0803 03758000 L @15,LICOAPTR(,@15) 0803 03759000 TM TMCOSTPC(@15),B'10000000' 0803 03760000 BNZ @RF00803 0803 03761000 * DO; /* SEND MESSAGE FOR THIS OPTION */ 03762000 * LIONEMSG='1'B; /* INDICATE ONE MSG SENT */ 03763000 OI LIONEMSG,B'10000000' 0805 03764000 * IF TMCOSTPS=LINOSTOP THEN /* 'NOSTOP' REQUESTED? */ 03765000 TM TMCOSTPS(@15),B'01000000' 0806 03766000 BNO @RF00806 0806 03767000 * DO; 0807 03768000 * LIPARTNO(1)=LMPART58; /* MSG PART NO. FOR NOSTOP */ 03769000 MVC LIPARTNO(2),@CH00716 0808 03770000 * LINDX=LINDXNUM(1); /* INDEX NUMBER */ 03771000 L @15,@PC00013 0809 03772000 LH @15,LINDXNUM(,@15) 0809 03773000 ST @15,LINDX 0809 03774000 * CALL INMSGMOD(LINDX,INVTXLST,0,INMDCBAD);/* ISSUE MESSAGE*/ 03775000 LA @15,LINDX 0810 03776000 ST @15,@AL00001 0810 03777000 LA @15,INVTXLST 0810 03778000 ST @15,@AL00001+4 0810 03779000 LA @15,@CF00945 0810 03780000 ST @15,@AL00001+8 0810 03781000 LA @15,INMDCBAD 0810 03782000 ST @15,@AL00001+12 0810 03783000 L @15,INMSGADR 0810 03784000 LA @01,@AL00001 0810 03785000 BALR @14,@15 0810 03786000 * END; 0811 03787000 * ELSE /* STOP(VALUE) SPECIFIED */ 03788000 * DO; 0812 03789000 B @RC00806 0812 03790000 @RF00806 DS 0H 0813 03791000 * IF TMCOSTPU=LISTPMIN THEN/* STOP TIME IN MINUTES? */ 03792000 L @15,@PC00013+4 0813 03793000 L @01,LICOAPTR(,@15) 0813 03794000 TM TMCOSTPU(@01),B'00100000' 0813 03795000 BNZ @RF00813 0813 03796000 * DO; 0814 03797000 * LISTRLEN=5; /* LENGTH OF CONVERTED STRING */ 03798000 MVC LISTRLEN(4),@CF00053 0815 03799000 * LISTRNG(6)='M'; /* INDICATE MINUTES IN STRING */ 03800000 MVI LISTRNG+5,C'M' 0816 03801000 * END; 0817 03802000 * ELSE /* STOP TIME IN HOURS */ 03803000 * DO; 0818 03804000 B @RC00813 0818 03805000 @RF00813 DS 0H 0819 03806000 * LISTRLEN=3; /* LENGTH OF CONVERTED STRING */ 03807000 MVC LISTRLEN(4),@CF00311 0819 03808000 * LISTRNG(4)='H'; /* INDICATE HOURS IN STRING */ 03809000 MVI LISTRNG+3,C'H' 0820 03810000 * END; 0821 03811000 * CALL LICNVMOD(EVAL(TMCOSTPV),LISCALE,LISTRNG,LISTRLEN, 0822 03812000 * LIDIGIT,LICOMMA,LIFLOAT);/* CONVERT VALUE */ 03813000 @RC00813 MVC @AL00001+4(24),@AL00822 0822 03814000 L @15,@PC00013+4 0822 03815000 L @01,LICOAPTR(,@15) 0822 03816000 LH @15,TMCOSTPV(,@01) 0822 03817000 ST @15,@AFTEMPS+16 0822 03818000 LA @15,@AFTEMPS+16 0822 03819000 ST @15,@AL00001 0822 03820000 LA @15,LISTRNG 0822 03821000 ST @15,@AL00001+8 0822 03822000 LA @15,LISTRLEN 0822 03823000 ST @15,@AL00001+12 0822 03824000 L @15,LICNVADR 0822 03825000 LA @01,@AL00001 0822 03826000 BALR @14,@15 0822 03827000 * LIVARTXT(1)=LISTRNG; /* MOVE IN STOP VALUE */ 03828000 MVC LIVARTXT(6),LISTRNG 0823 03829000 * LITXTLEN(1)=LISTRLEN+1; /* ALLOW FOR 'M' OR 'H' */ 03830000 * 0824 03831000 LA @15,1 0824 03832000 L @14,LISTRLEN 0824 03833000 AR @14,@15 0824 03834000 STH @14,LITXTLEN 0824 03835000 */* TAKE OUT LEADING BLANKS */ 03836000 * 0825 03837000 * DO I=1 TO LITXTLEN(1)WHILE(LIVARTXT(1,I)=' '); 0825 03838000 B @DE00825 0825 03839000 @DL00825 LA @14,LIVARTXT-1(@15) 0825 03840000 CLI 0(@14),C' ' 0825 03841000 BNE @DC00825 0825 03842000 * END; 0826 03843000 AH @15,@CH00065 0826 03844000 @DE00825 ST @15,I 0826 03845000 CH @15,LITXTLEN 0826 03846000 BNH @DL00825 0826 03847000 @DC00825 DS 0H 0827 03848000 * LIVARTXT(1,1:LITXTLEN(1)-I+1)=LIVARTXT(1,I:LITXTLEN(1)); 03849000 L @15,I 0827 03850000 LH @14,LITXTLEN 0827 03851000 SR @14,@15 0827 03852000 LA @01,LIVARTXT-1(@15) 0827 03853000 MVC @TS00001(6),0(@01) 0827 03854000 EX @14,@SM01516 0827 03855000 * /* MOVE CHARACTERS OVER */ 03856000 * LITXTLEN(1)=LITXTLEN(1)-I+1;/* CHANGE LENGTH */ 03857000 LCR @15,@15 0828 03858000 AH @15,LITXTLEN 0828 03859000 AH @15,@CH00065 0828 03860000 STH @15,LITXTLEN 0828 03861000 * LIPARTNO(1)=0; 0829 03862000 SR @15,@15 0829 03863000 STH @15,LIPARTNO 0829 03864000 * LINDX=LINDXNUM(6); 0830 03865000 L @15,@PC00013 0830 03866000 LH @15,LINDXNUM+10(,@15) 0830 03867000 ST @15,LINDX 0830 03868000 * CALL INMSGMOD(LINDX,INVTXLST,0,INMDCBAD);/* ISSUE MESSAGE*/ 03869000 LA @15,LINDX 0831 03870000 ST @15,@AL00001 0831 03871000 LA @15,INVTXLST 0831 03872000 ST @15,@AL00001+4 0831 03873000 LA @15,@CF00945 0831 03874000 ST @15,@AL00001+8 0831 03875000 LA @15,INMDCBAD 0831 03876000 ST @15,@AL00001+12 0831 03877000 L @15,INMSGADR 0831 03878000 LA @01,@AL00001 0831 03879000 BALR @14,@15 0831 03880000 * END; 0832 03881000 * END; 0833 03882000 @RC00806 DS 0H 0834 03883000 * IF TMCOOUTC=LICTLSET THEN /* SYSOUT OPTION SET */ 03884000 @RF00803 L @15,@PC00013+4 0834 03885000 L @15,LICOAPTR(,@15) 0834 03886000 TM TMCOOUTC(@15),B'10000000' 0834 03887000 BNZ @RF00834 0834 03888000 * DO; /* SEND MESSAGE FOR THIS OPTION */ 03889000 * LIONEMSG='1'B; /* INDICATE ONE MSG SENT */ 03890000 OI LIONEMSG,B'10000000' 0836 03891000 * LIVARTXT(1)=TMCOOUTV; /* MOVE IN SYSOUT VALUE */ 03892000 MVI LIVARTXT+1,C' ' 0837 03893000 MVC LIVARTXT+2(4),LIVARTXT+1 0837 03894000 MVC LIVARTXT(1),TMCOOUTV(@15) 0837 03895000 * LITXTLEN(1)=1; 0838 03896000 MVC LITXTLEN(2),@CH00065 0838 03897000 * LIPARTNO(1)=0; 0839 03898000 SR @15,@15 0839 03899000 STH @15,LIPARTNO 0839 03900000 * LINDX=LINDXNUM(7); 0840 03901000 L @15,@PC00013 0840 03902000 LH @15,LINDXNUM+12(,@15) 0840 03903000 ST @15,LINDX 0840 03904000 * CALL INMSGMOD(LINDX,INVTXLST,0,INMDCBAD);/* ISSUE MESSAGE */ 03905000 LA @15,LINDX 0841 03906000 ST @15,@AL00001 0841 03907000 LA @15,INVTXLST 0841 03908000 ST @15,@AL00001+4 0841 03909000 LA @15,@CF00945 0841 03910000 ST @15,@AL00001+8 0841 03911000 LA @15,INMDCBAD 0841 03912000 ST @15,@AL00001+12 0841 03913000 L @15,INMSGADR 0841 03914000 LA @01,@AL00001 0841 03915000 BALR @14,@15 0841 03916000 * END; 0842 03917000 * IF TMCOREPC=LICTLSET THEN /* REPORT OPTION SET */ 03918000 @RF00834 L @15,@PC00013+4 0843 03919000 L @15,LICOAPTR(,@15) 0843 03920000 TM TMCOREPC(@15),B'10000000' 0843 03921000 BNZ @RF00843 0843 03922000 * DO; /* SEND MESSAGE FOR THIS OPTION */ 03923000 * LIONEMSG='1'B; /* INDICATE ONE MSG SENT */ 03924000 OI LIONEMSG,B'10000000' 0845 03925000 * INVTXLST(1)=ADDR(LIPARTNO(1)); 0846 03926000 LA @14,LIPARTNO 0846 03927000 ST @14,INVTXLST 0846 03928000 * IF TMCOREPV=LINORPRT THEN /* 'NOREPORT' REQUESTED? */ 03929000 TM TMCOREPV(@15),B'00000011' 0847 03930000 BNZ @RF00847 0847 03931000 * DO; 0848 03932000 * LIPARTNO(1)=LMPART57; /* MSG PART NO. FOR NOREPORT */ 03933000 MVC LIPARTNO(2),@CH00714 0849 03934000 * LINDX=LINDXNUM(1); 0850 03935000 L @15,@PC00013 0850 03936000 LH @15,LINDXNUM(,@15) 0850 03937000 ST @15,LINDX 0850 03938000 * END; 0851 03939000 * ELSE /* REPORT(REPORTVALUE) SPECIFIED */ 03940000 * DO; 0852 03941000 B @RC00847 0852 03942000 @RF00847 DS 0H 0853 03943000 * IF TMCOREPV=LIDEFER THEN/* 'REPORT(DEFER)' REQUESTED? */ 03944000 L @15,@PC00013+4 0853 03945000 L @01,LICOAPTR(,@15) 0853 03946000 TM TMCOREPV(@01),B'00000001' 0853 03947000 BNO @RF00853 0853 03948000 TM TMCOREPV(@01),B'00000010' 0853 03949000 BNZ @RF00853 0853 03950000 * LIPARTNO(1)=LMPART48; /* MSG PART NO. FOR DEFER */ 03951000 MVC LIPARTNO(2),@CH00452 0854 03952000 * ELSE /* 'REPORT(REALTIME)' REQUESTED */ 03953000 * LIPARTNO(1)=LMPART50; /* MSG PART NO. FOR REALTIME */ 03954000 B @RC00853 0855 03955000 @RF00853 MVC LIPARTNO(2),@CH00701 0855 03956000 * LINDX=LINDXNUM(3); 0856 03957000 @RC00853 L @15,@PC00013 0856 03958000 LH @15,LINDXNUM+4(,@15) 0856 03959000 ST @15,LINDX 0856 03960000 * END; 0857 03961000 * CALL INMSGMOD(LINDX,INVTXLST,0,INMDCBAD);/* ISSUE MESSAGE */ 03962000 @RC00847 LA @15,LINDX 0858 03963000 ST @15,@AL00001 0858 03964000 LA @15,INVTXLST 0858 03965000 ST @15,@AL00001+4 0858 03966000 LA @15,@CF00945 0858 03967000 ST @15,@AL00001+8 0858 03968000 LA @15,INMDCBAD 0858 03969000 ST @15,@AL00001+12 0858 03970000 L @15,INMSGADR 0858 03971000 LA @01,@AL00001 0858 03972000 BALR @14,@15 0858 03973000 * END; 0859 03974000 * IF TMCOMEMC=LICTLSET THEN /* MEMBER OPTION SET */ 03975000 @RF00843 L @15,@PC00013+4 0860 03976000 L @15,LICOAPTR(,@15) 0860 03977000 TM TMCOMEMC(@15),B'10000000' 0860 03978000 BNZ @RF00860 0860 03979000 * DO; /* SEND MESSAGE FOR THIS OPTION */ 03980000 * LIONEMSG='1'B; /* INDICATE ONE MSG SENT */ 03981000 * 0862 03982000 OI LIONEMSG,B'10000000' 0862 03983000 * /*************************************************************/ 03984000 * /* */ 03985000 * /* IF MERGE COMPLETE AND LISTING CURRENT SOURCE, PRINT REAL */ 03986000 * /* MEMBER USED. OTHERWISE PRINT CURRENT MEMBER ASSUMED */ 03987000 * /* */ 03988000 * /*************************************************************/ 03989000 * 0863 03990000 * IF LICOAPTR=ADDR(INCOA)&INMRGFIN='1'B THEN 0863 03991000 LA @14,INCOA 0863 03992000 CR @15,@14 0863 03993000 BNE @RF00863 0863 03994000 TM INMRGFIN,B'10000000' 0863 03995000 BNO @RF00863 0863 03996000 * LIVARTXT(1)=MFCOMEMV; 0864 03997000 MVI LIVARTXT+2,C' ' 0864 03998000 MVC LIVARTXT+3(3),LIVARTXT+2 0864 03999000 L @15,@PC00001+8 0864 04000000 MVC LIVARTXT(2),MFCOMEMV(@15) 0864 04001000 * ELSE 0865 04002000 * LIVARTXT(1)=TMCOMEMV; 0865 04003000 B @RC00863 0865 04004000 @RF00863 MVI LIVARTXT+2,C' ' 0865 04005000 MVC LIVARTXT+3(3),LIVARTXT+2 0865 04006000 L @15,@PC00013+4 0865 04007000 L @01,LICOAPTR(,@15) 0865 04008000 MVC LIVARTXT(2),TMCOMEMV(@01) 0865 04009000 * LITXTLEN(1)=LENGTH(TMCOMEMV); 0866 04010000 @RC00863 MVC LITXTLEN(2),@CH00078 0866 04011000 * LIPARTNO(1)=0; 0867 04012000 SR @15,@15 0867 04013000 STH @15,LIPARTNO 0867 04014000 * LINDX=LINDXNUM(9); 0868 04015000 L @15,@PC00013 0868 04016000 LH @15,LINDXNUM+16(,@15) 0868 04017000 ST @15,LINDX 0868 04018000 * CALL INMSGMOD(LINDX,INVTXLST,0,INMDCBAD);/* ISSUE MESSAGE */ 04019000 LA @15,LINDX 0869 04020000 ST @15,@AL00001 0869 04021000 LA @15,INVTXLST 0869 04022000 ST @15,@AL00001+4 0869 04023000 LA @15,@CF00945 0869 04024000 ST @15,@AL00001+8 0869 04025000 LA @15,INMDCBAD 0869 04026000 ST @15,@AL00001+12 0869 04027000 L @15,INMSGADR 0869 04028000 LA @01,@AL00001 0869 04029000 BALR @14,@15 0869 04030000 * END; 0870 04031000 * 0870 04032000 * /*****************************************************************/ 04033000 * /* */ 04034000 * /* WRITE OUT OPI MSG IF THIS IS CURRENT SOURCE AND OPTION IS SET */ 04035000 * /* */ 04036000 * /*****************************************************************/ 04037000 * 0871 04038000 * IF LIMVTPTR=ADDR(INMVT)&TMCOOPIC=LICTLSET THEN 0871 04039000 @RF00860 L @15,@PC00013+8 0871 04040000 LA @14,INMVT 0871 04041000 C @14,LIMVTPTR(,@15) 0871 04042000 BNE @RF00871 0871 04043000 L @15,@PC00013+4 0871 04044000 L @15,LICOAPTR(,@15) 0871 04045000 TM TMCOOPIC(@15),B'10000000' 0871 04046000 BNZ @RF00871 0871 04047000 * DO; 0872 04048000 * LIONEMSG='1'B; /* INDICATE ONE MSG SENT */ 04049000 OI LIONEMSG,B'10000000' 0873 04050000 * IF TMCOOPIV=LIOPTSET THEN 0874 04051000 TM TMCOOPIV(@15),B'00000001' 0874 04052000 BNO @RF00874 0874 04053000 * LIPARTNO(1)=LMPART71; /* MSG PART NO. FOR OPI */ 04054000 MVC LIPARTNO(2),@CH00741 0875 04055000 * ELSE 0876 04056000 * LIPARTNO(1)=LMPART72; /* MSG PART NO. FOR NOOPI */ 04057000 * 0876 04058000 B @RC00874 0876 04059000 @RF00874 MVC LIPARTNO(2),@CH00535 0876 04060000 * /*************************************************************/ 04061000 * /* */ 04062000 * /* ISSUE MESSAGE */ 04063000 * /* */ 04064000 * /*************************************************************/ 04065000 * 0877 04066000 * LINDX=LINDXNUM(1); 0877 04067000 @RC00874 L @15,@PC00013 0877 04068000 LH @15,LINDXNUM(,@15) 0877 04069000 ST @15,LINDX 0877 04070000 * CALL INMSGMOD(LINDX,INVTXLST,0,INMDCBAD);/* ISSUE MESSAGE */ 04071000 LA @15,LINDX 0878 04072000 ST @15,@AL00001 0878 04073000 LA @15,INVTXLST 0878 04074000 ST @15,@AL00001+4 0878 04075000 LA @15,@CF00945 0878 04076000 ST @15,@AL00001+8 0878 04077000 LA @15,INMDCBAD 0878 04078000 ST @15,@AL00001+12 0878 04079000 L @15,INMSGADR 0878 04080000 LA @01,@AL00001 0878 04081000 BALR @14,@15 0878 04082000 * END; 0879 04083000 * 0879 04084000 * /*****************************************************************/ 04085000 * /* */ 04086000 * /* MACDATE Y-2 73018 */ 04087000 * /* */ 04088000 * /*****************************************************************/ 04089000 * 0880 04090000 * RESPECIFY 0880 04091000 * (GPR00P, 0880 04092000 * GPR01P, 0880 04093000 * GPR14P, 0880 04094000 * GPR15P)RESTRICTED; 0880 04095000 @RF00871 DS 0H 0881 04096000 * GENERATE; 0881 04097000 * 0881 04098000 * /* DELETE CONVERT ROUTINE */ 04099000 DELETE EPLOC=INMODULE 04100000 * /*****************************************************************/ 04101000 * /* */ 04102000 * /* MACDATE Y-2 73018 */ 04103000 * /* */ 04104000 * /*****************************************************************/ 04105000 * 0882 04106000 * RESPECIFY 0882 04107000 * (GPR00P, 0882 04108000 * GPR01P, 0882 04109000 * GPR14P, 0882 04110000 * GPR15P)UNRESTRICTED; 0882 04111000 * IF LIONEMSG='0'B THEN /* NO MESSAGES ISSUED BECAUSE NO 04112000 * OPTIONS WERE SET. ISSUE NO 0883 04113000 * MF/1 OPTIONS ASSUMED MSG. */ 04114000 TM LIONEMSG,B'10000000' 0883 04115000 BNZ @RF00883 0883 04116000 * CALL INMSGMOD(EVAL(LINDXNUM(10)),0,0,INMDCBAD);/* ISSUE MESSAGE*/ 04117000 L @15,@PC00013 0884 04118000 LH @15,LINDXNUM+18(,@15) 0884 04119000 ST @15,@AFTEMPS+16 0884 04120000 LA @15,@AFTEMPS+16 0884 04121000 ST @15,@AL00001 0884 04122000 LA @15,@CF00945 0884 04123000 ST @15,@AL00001+4 0884 04124000 LA @15,@CF00945 0884 04125000 ST @15,@AL00001+8 0884 04126000 LA @15,INMDCBAD 0884 04127000 ST @15,@AL00001+12 0884 04128000 L @15,INMSGADR 0884 04129000 LA @01,@AL00001 0884 04130000 BALR @14,@15 0884 04131000 * RETURN; /* RETURN TO INP */ 04132000 @EL00013 DS 0H 0885 04133000 @EF00013 DS 0H 0885 04134000 @ER00013 LM @14,@12,@SA00013 0885 04135000 BR @14 0885 04136000 * END LISTOP; 0886 04137000 B @EL00013 0886 04138000 * 0887 04139000 */* PROCEDURE NAME = MFOPINIT */ 04140000 */* */ 04141000 */* DESCRIPTIVE NAME = OPTION INITIALIZATION */ 04142000 */* */ 04143000 */* FUNCTION = INITIALIZES THE PMA AND COA (TEMPORARY ONES) */ 04144000 */* ACCORDING TO THE OPTIONS SPECIFIED. */ 04145000 */* */ 04146000 * 0887 04147000 *MFOPINIT: 0887 04148000 * PROCEDURE(OPCODPTR); 0887 04149000 MFOPINIT STM @14,@12,@SA00014 0887 04150000 MVC @PC00014(4),0(@01) 0887 04151000 * DECLARE 0888 04152000 * 1 OP303LST, /* TEXT TO BE INSERTED IN MSG */ 04153000 * 2 OPTXTNUM /* MSG PART NUMBER */ 04154000 * FIXED(15), 0888 04155000 * 2 OPTXTLEN /* LENGTH OF TEXT */ 04156000 * FIXED(15), 0888 04157000 * 2 OPTEXT /* TEXT */ 04158000 * CHAR(2), 0888 04159000 * OPMAXVAL /* MAXIMUM VALUE FOR STOP IN HRS */ 04160000 * STATIC LOCAL FIXED(31)INIT(168), 0888 04161000 * OPCODPTR /* PTR TO SUBROUTINE CODE */ 04162000 * PTR(31), 0888 04163000 * OPSUBCOD /* SUBROUTINE CODE */ 04164000 * FIXED(8)BASED(OPCODPTR), 0888 04165000 * OPCNTRL /* DEVICE TYPES CONTROL ELEMENT */ 04166000 * FIXED(8)CONSTANT(1), 0888 04167000 * OPSTATUS /* DEVICE TYPES STATUS ELEMENT */ 04168000 * FIXED(8)CONSTANT(2), 0888 04169000 * OPLABEL /* SECTION OF CODE TO BE EXECUTED*/ 04170000 * LABEL BASED, 0888 04171000 * OPONEMIN /* MINIMUM INTERVAL TIME */ 04172000 * FIXED(15)CONSTANT(1), 0888 04173000 * OP60MIN /* MAXIMUM INTERVAL TIME */ 04174000 * FIXED(15)CONSTANT(60), 0888 04175000 * OPCNVADR /* CONVERT ROUTINE ADDRESS */ 04176000 * PTR(31), 0888 04177000 * OPCNVMOD /* CONVERT ROUTINE ENTRY POINT */ 04178000 * ENTRY BASED(OPCNVADR), 0888 04179000 * OPTMEMBR /* CONVERTED MEMBER NUMBER */ 04180000 * CHARACTER(2), 0888 04181000 * OP999MS /* CYCLE MAXIMUM VALUE */ 04182000 * FIXED(15)CONSTANT(999), 0888 04183000 * OP50MS /* CYCLE MINIMUM VALUE */ 04184000 * FIXED(15)CONSTANT(50), 0888 04185000 * OPOPTSET /* OPTION SET */ 04186000 * BIT(1)CONSTANT('0'B), 0888 04187000 * OPSYSTEM /* WKLD(SYSTEM) SPECIFIED */ 04188000 * BIT(2)CONSTANT('01'B), 0888 04189000 * OPGROUP /* WKLD(GROUP) SPECIFIED */ 04190000 * BIT(2)CONSTANT('10'B), 0888 04191000 * OPPERIOD /* WKLD(PERIOD) SPECIFIED */ 04192000 * BIT(2)CONSTANT('11'B), 0888 04193000 * OPNOWKLD /* NOWKLD SPECIFIED */ 04194000 * BIT(2)CONSTANT('00'B), 0888 04195000 * OPPAGC /* PAGING OPTION */ 04196000 * BIT(1)CONSTANT('1'B), 0888 04197000 * OPNOPAGC /* NOPAGING OPTION */ 04198000 * BIT(1)CONSTANT('0'B), 0888 04199000 * OPCPUC /* CPU OPTION */ 04200000 * BIT(1)CONSTANT('1'B), 0888 04201000 * OPNOCPUC /* NOCPU OPTION */ 04202000 * BIT(1)CONSTANT('0'B), 0888 04203000 * OPCHANC /* CHANNEL OPTION */ 04204000 * BIT(1)CONSTANT('1'B), 0888 04205000 * OPNOCHN /* NOCHANNEL OPTION */ 04206000 * BIT(1)CONSTANT('0'B), 0888 04207000 * OPTAPDEV /* TAPE DEVICE */ 04208000 * BIT(1)CONSTANT('1'B), 0888 04209000 * OPNOTADV /* NOTAPE DEVICE */ 04210000 * BIT(1)CONSTANT('0'B), 0888 04211000 * OPGRAPHC /* GRAPHICS DEVICE */ 04212000 * BIT(1)CONSTANT('1'B), 0888 04213000 * OPNOGRAC /* NOGRAPH */ 04214000 * BIT(1)CONSTANT('0'B), 0888 04215000 * OPUNITRC /* UNITR DEVICE */ 04216000 * BIT(1)CONSTANT('1'B), 0888 04217000 * OPNOUNIT /* NOUNITR */ 04218000 * BIT(1)CONSTANT('0'B), 0888 04219000 * OPTP /* TP DEVICE */ 04220000 * BIT(1)CONSTANT('1'B), 0888 04221000 * OPNOTP /* NOTP */ 04222000 * BIT(1)CONSTANT('0'B), 0888 04223000 * OPDASDEV /* DASD DEVICE */ 04224000 * BIT(1)CONSTANT('1'B), 0888 04225000 * OPNODAS /* NODASD */ 04226000 * BIT(1)CONSTANT('0'B), 0888 04227000 * OPNODEVS /* NODEVICE */ 04228000 * BIT(8)CONSTANT('00000000'B), 0888 04229000 * OPCRDR /* CHRDR DEVICE */ 04230000 * BIT(1)CONSTANT('1'B), 0888 04231000 * OPNOCRDR /* NOCHRDR */ 04232000 * BIT(1)CONSTANT('0'B), 0888 04233000 * OPDEFER /* REPORT(DEFER) */ 04234000 * BIT(2)CONSTANT('01'B), 0888 04235000 * OPREALTM /* REPORT(REALTIME) */ 04236000 * BIT(2)CONSTANT('10'B), 0888 04237000 * OPNOREPT /* NOREPORT */ 04238000 * BIT(2)CONSTANT('00'B), 0888 04239000 * OPNOSTP /* NOSTOP */ 04240000 * BIT(1)CONSTANT('1'B), 0888 04241000 * OPUNTHRS /* STOP TIME IN HOURS */ 04242000 * BIT(1)CONSTANT('1'B), 0888 04243000 * OPSTP /* STOP SPECIFIED */ 04244000 * BIT(1)CONSTANT('0'B), 0888 04245000 * OPUNTMIN /* STOP TIME IN MINUTES */ 04246000 * BIT(1)CONSTANT('0'B), 0888 04247000 * OPTRC /* TRACE */ 04248000 * BIT(1)CONSTANT('1'B), 0888 04249000 * OPNOTRC /* NOTRACE */ 04250000 * BIT(1)CONSTANT('0'B), 0888 04251000 * OPSUBTAB(38) /* SUBROUTINE TABLE */ 04252000 * PTR(31)STATIC LOCAL INIT(ADDR(OPCHRDR),ADDR(OPWKLD1),ADDR( 04253000 * OPWKLD2),ADDR(OPWKLD3),ADDR(OPWKLD4),ADDR(OPPAGING),ADDR( 04254000 * OPNOPAG),ADDR(OPCPU),ADDR(OPNOCPU),ADDR(OPCHAN),ADDR( 0888 04255000 * OPNOCHAN),ADDR(OPINTVAL),ADDR(OPNOCHR),ADDR(OPTAPE),ADDR( 04256000 * OPGRAPH),ADDR(OPUNRC),ADDR(OPTPCOM),ADDR(OPDASD),ADDR( 04257000 * OPNOTAPE),ADDR(OPNOGRAP),ADDR(OPNOUNRC),ADDR(OPNOTPCM), 04258000 * ADDR(OPNODASD),ADDR(OPNODEV),ADDR(OPRPRT1),ADDR(OPRPRT2), 04259000 * ADDR(OPNORPT),ADDR(OPNOSTOP),ADDR(OPTRACE),ADDR(OPNOTRCE), 04260000 * ADDR(OPOPI),ADDR(OPNOPI),ADDR(OPSTOP1),ADDR(OPSTOP2),ADDR( 04261000 * OPCYCLE),ADDR(OPERR),ADDR(OPSYSOUT),ADDR(OPMEMBER)); 0888 04262000 * GOTO OPSUBTAB(OPSUBCOD)->OPLABEL;/* INITIALIZE THIS OPTION VALUE */ 04263000 * 0889 04264000 L @15,@PC00014 0889 04265000 L @01,OPCODPTR(,@15) 0889 04266000 SR @15,@15 0889 04267000 IC @15,OPSUBCOD(,@01) 0889 04268000 SLA @15,2 0889 04269000 L @01,OPSUBTAB-4(@15) 0889 04270000 BR @01 0889 04271000 * /*****************************************************************/ 04272000 * /* */ 04273000 * /* WORKLOAD INITIALIZATION */ 04274000 * /* */ 04275000 * /*****************************************************************/ 04276000 * 0890 04277000 *OPWKLD1: 0890 04278000 * ; /* SYSTEM INITIALIZATION */ 04279000 OPWKLD1 DS 0H 0891 04280000 * IF INMVWKL->INPMCON=OPOPTSET&INMVWKL->INPMWKLD^=OPSYSTEM THEN/* 04281000 * MUTUAL EXCLUSIVENESS? */ 04282000 L @15,INMVWKL 0891 04283000 TM INPMCON(@15),B'10000000' 0891 04284000 BNZ @RF00891 0891 04285000 TM INPMWKLD(@15),B'00000001' 0891 04286000 BNO @RT00891 0891 04287000 TM INPMWKLD(@15),B'00000010' 0891 04288000 BZ @RF00891 0891 04289000 @RT00891 DS 0H 0892 04290000 * DO; 0892 04291000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04292000 NI INCOOPIC,B'01111111' 0893 04293000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04294000 OI INCOOPIV,B'00000001' 0894 04295000 * INCOXINV='1'B; 0895 04296000 OI INCOXINV,B'00000100' 0895 04297000 * END; 0896 04298000 * INMVWKL->INPMWKLD=OPSYSTEM; /* WKLD(SYSTEM) */ 04299000 @RF00891 L @15,INMVWKL 0897 04300000 NI INPMWKLD(@15),B'11111101' 0897 04301000 OI INPMWKLD(@15),B'00000001' 0897 04302000 * INMVWKL->INPMCON=OPOPTSET; /* OPTION SET */ 04303000 NI INPMCON(@15),B'01111111' 0898 04304000 * RETURN; 0899 04305000 @EL00014 DS 0H 0899 04306000 @EF00014 DS 0H 0899 04307000 @ER00014 LM @14,@12,@SA00014 0899 04308000 BR @14 0899 04309000 *OPWKLD2: 0900 04310000 * ; /* GROUP INITIALIZATION */ 04311000 OPWKLD2 DS 0H 0901 04312000 * IF INMVWKL->INPMCON=OPOPTSET&INMVWKL->INPMWKLD^=OPGROUP THEN/* 0901 04313000 * MUTUAL EXCLUSIVENESS? */ 04314000 L @15,INMVWKL 0901 04315000 TM INPMCON(@15),B'10000000' 0901 04316000 BNZ @RF00901 0901 04317000 TM INPMWKLD(@15),B'00000010' 0901 04318000 BNO @RT00901 0901 04319000 TM INPMWKLD(@15),B'00000001' 0901 04320000 BZ @RF00901 0901 04321000 @RT00901 DS 0H 0902 04322000 * DO; 0902 04323000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04324000 NI INCOOPIC,B'01111111' 0903 04325000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04326000 OI INCOOPIV,B'00000001' 0904 04327000 * INCOXINV='1'B; 0905 04328000 OI INCOXINV,B'00000100' 0905 04329000 * END; 0906 04330000 * INMVWKL->INPMWKLD=OPGROUP; /* WKLD(GROUP) */ 04331000 @RF00901 L @15,INMVWKL 0907 04332000 NI INPMWKLD(@15),B'11111110' 0907 04333000 OI INPMWKLD(@15),B'00000010' 0907 04334000 * INMVWKL->INPMCON=OPOPTSET; /* OPTION SET */ 04335000 NI INPMCON(@15),B'01111111' 0908 04336000 * RETURN; 0909 04337000 B @EL00014 0909 04338000 *OPWKLD3: 0910 04339000 * ; /* PERIOD INITIALIZATION */ 04340000 OPWKLD3 DS 0H 0911 04341000 * IF INMVWKL->INPMCON=OPOPTSET&INMVWKL->INPMWKLD^=OPPERIOD THEN/* 04342000 * MUTUAL EXCLUSIVENESS? */ 04343000 L @15,INMVWKL 0911 04344000 TM INPMCON(@15),B'10000000' 0911 04345000 BNZ @RF00911 0911 04346000 TM INPMWKLD(@15),B'00000011' 0911 04347000 BO @RF00911 0911 04348000 * DO; 0912 04349000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04350000 NI INCOOPIC,B'01111111' 0913 04351000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04352000 OI INCOOPIV,B'00000001' 0914 04353000 * INCOXINV='1'B; 0915 04354000 OI INCOXINV,B'00000100' 0915 04355000 * END; 0916 04356000 * INMVWKL->INPMWKLD=OPPERIOD; /* WKLD(PERIOD) */ 04357000 @RF00911 L @15,INMVWKL 0917 04358000 OI INPMWKLD(@15),B'00000011' 0917 04359000 * INMVWKL->INPMCON=OPOPTSET; /* OPTION SET */ 04360000 NI INPMCON(@15),B'01111111' 0918 04361000 * RETURN; 0919 04362000 B @EL00014 0919 04363000 *OPWKLD4: 0920 04364000 * ; /* NOWKLD INITIALIZATION */ 04365000 OPWKLD4 DS 0H 0921 04366000 * IF INMVWKL->INPMCON=OPOPTSET&INMVWKL->INPMWKLD^=OPNOWKLD THEN/* 04367000 * MUTUAL EXCLUSIVENESS? */ 04368000 L @15,INMVWKL 0921 04369000 TM INPMCON(@15),B'10000000' 0921 04370000 BNZ @RF00921 0921 04371000 TM INPMWKLD(@15),B'00000011' 0921 04372000 BZ @RF00921 0921 04373000 * DO; 0922 04374000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04375000 NI INCOOPIC,B'01111111' 0923 04376000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04377000 OI INCOOPIV,B'00000001' 0924 04378000 * INCOXINV='1'B; 0925 04379000 OI INCOXINV,B'00000100' 0925 04380000 * END; 0926 04381000 * INMVWKL->INPMWKLD=OPNOWKLD; /* NOWKLD */ 04382000 @RF00921 L @15,INMVWKL 0927 04383000 NI INPMWKLD(@15),B'11111100' 0927 04384000 * INMVWKL->INPMCON=OPOPTSET; /* OPTION SET */ 04385000 NI INPMCON(@15),B'01111111' 0928 04386000 * RETURN; 0929 04387000 * 0929 04388000 B @EL00014 0929 04389000 * /*****************************************************************/ 04390000 * /* */ 04391000 * /* PAGING INITIALIZATION */ 04392000 * /* */ 04393000 * /*****************************************************************/ 04394000 * 0930 04395000 *OPPAGING: 0930 04396000 * ; /* PAGING INITIALIZATION */ 04397000 OPPAGING DS 0H 0931 04398000 * IF INMVPAG->INPMCON=OPOPTSET&INMVPAG->INPMSTA^=OPPAGC THEN/* 0931 04399000 * MUTUAL EXCLUSIVENESS? */ 04400000 L @15,INMVPAG 0931 04401000 TM INPMCON(@15),B'10000000' 0931 04402000 BNZ @RF00931 0931 04403000 TM INPMSTA(@15),B'00000001' 0931 04404000 BO @RF00931 0931 04405000 * DO; 0932 04406000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04407000 NI INCOOPIC,B'01111111' 0933 04408000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04409000 OI INCOOPIV,B'00000001' 0934 04410000 * INCOXINV='1'B; 0935 04411000 OI INCOXINV,B'00000100' 0935 04412000 * END; 0936 04413000 * INMVPAG->INPMSTA=OPPAGC; /* PAGING */ 04414000 @RF00931 L @15,INMVPAG 0937 04415000 OI INPMSTA(@15),B'00000001' 0937 04416000 * INMVPAG->INPMCON=OPOPTSET; /* OPTION SET */ 04417000 NI INPMCON(@15),B'01111111' 0938 04418000 * RETURN; 0939 04419000 B @EL00014 0939 04420000 *OPNOPAG: 0940 04421000 * ; /* NO PAGING INITIALIZATION */ 04422000 OPNOPAG DS 0H 0941 04423000 * IF INMVPAG->INPMCON=OPOPTSET&INMVPAG->INPMSTA^=OPNOPAGC THEN 0941 04424000 L @15,INMVPAG 0941 04425000 TM INPMCON(@15),B'10000000' 0941 04426000 BNZ @RF00941 0941 04427000 TM INPMSTA(@15),B'00000001' 0941 04428000 BZ @RF00941 0941 04429000 * DO; 0942 04430000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04431000 NI INCOOPIC,B'01111111' 0943 04432000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04433000 OI INCOOPIV,B'00000001' 0944 04434000 * INCOXINV='1'B; 0945 04435000 OI INCOXINV,B'00000100' 0945 04436000 * END; 0946 04437000 * INMVPAG->INPMSTA=OPNOPAGC; /* NOPAGING */ 04438000 @RF00941 L @15,INMVPAG 0947 04439000 NI INPMSTA(@15),B'11111110' 0947 04440000 * INMVPAG->INPMCON=OPOPTSET; /* OPTION SET */ 04441000 NI INPMCON(@15),B'01111111' 0948 04442000 * RETURN; 0949 04443000 * 0949 04444000 B @EL00014 0949 04445000 * /*****************************************************************/ 04446000 * /* */ 04447000 * /* CPU INITIALIZATION */ 04448000 * /* */ 04449000 * /*****************************************************************/ 04450000 * 0950 04451000 *OPCPU: 0950 04452000 * ; /* CPU INIT. */ 04453000 OPCPU DS 0H 0951 04454000 * IF INMVCPU->INPMCON=OPOPTSET&INMVCPU->INPMSTA^=OPCPUC THEN/* 0951 04455000 * MUTUAL EXCLUSIVENESS? */ 04456000 L @15,INMVCPU 0951 04457000 TM INPMCON(@15),B'10000000' 0951 04458000 BNZ @RF00951 0951 04459000 TM INPMSTA(@15),B'00000001' 0951 04460000 BO @RF00951 0951 04461000 * DO; 0952 04462000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04463000 NI INCOOPIC,B'01111111' 0953 04464000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04465000 OI INCOOPIV,B'00000001' 0954 04466000 * INCOXINV='1'B; 0955 04467000 OI INCOXINV,B'00000100' 0955 04468000 * END; 0956 04469000 * INMVCPU->INPMSTA=OPCPUC; /* CPU OPTION */ 04470000 @RF00951 L @15,INMVCPU 0957 04471000 OI INPMSTA(@15),B'00000001' 0957 04472000 * INMVCPU->INPMCON=OPOPTSET; /* OPTION SET */ 04473000 NI INPMCON(@15),B'01111111' 0958 04474000 * RETURN; 0959 04475000 B @EL00014 0959 04476000 *OPNOCPU: 0960 04477000 * ; /* NO CPU INIT. */ 04478000 OPNOCPU DS 0H 0961 04479000 * IF INMVCPU->INPMCON=OPOPTSET&INMVCPU->INPMSTA^=OPNOCPUC THEN 0961 04480000 L @15,INMVCPU 0961 04481000 TM INPMCON(@15),B'10000000' 0961 04482000 BNZ @RF00961 0961 04483000 TM INPMSTA(@15),B'00000001' 0961 04484000 BZ @RF00961 0961 04485000 * DO; 0962 04486000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04487000 NI INCOOPIC,B'01111111' 0963 04488000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04489000 OI INCOOPIV,B'00000001' 0964 04490000 * INCOXINV='1'B; 0965 04491000 OI INCOXINV,B'00000100' 0965 04492000 * END; 0966 04493000 * INMVCPU->INPMSTA=OPNOCPUC; /* NOCPU OPTION */ 04494000 @RF00961 L @15,INMVCPU 0967 04495000 NI INPMSTA(@15),B'11111110' 0967 04496000 * INMVCPU->INPMCON=OPOPTSET; /* OPTION SET */ 04497000 NI INPMCON(@15),B'01111111' 0968 04498000 * RETURN; 0969 04499000 * 0969 04500000 B @EL00014 0969 04501000 * /*****************************************************************/ 04502000 * /* */ 04503000 * /* CHANNEL INITIALIZATION */ 04504000 * /* */ 04505000 * /*****************************************************************/ 04506000 * 0970 04507000 *OPCHAN: 0970 04508000 * ; /* CHAN INITIALIZATION */ 04509000 OPCHAN DS 0H 0971 04510000 * IF INMVCHA->INPMCON=OPOPTSET&INMVCHA->INPMSTA^=OPCHANC THEN/* 0971 04511000 * MUTUAL EXCLUSIVENESS? */ 04512000 L @15,INMVCHA 0971 04513000 TM INPMCON(@15),B'10000000' 0971 04514000 BNZ @RF00971 0971 04515000 TM INPMSTA(@15),B'00000001' 0971 04516000 BO @RF00971 0971 04517000 * DO; 0972 04518000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04519000 NI INCOOPIC,B'01111111' 0973 04520000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04521000 OI INCOOPIV,B'00000001' 0974 04522000 * INCOXINV='1'B; 0975 04523000 OI INCOXINV,B'00000100' 0975 04524000 * END; 0976 04525000 * INMVCHA->INPMSTA=OPCHANC; /* CHANNEL OPTION */ 04526000 @RF00971 L @15,INMVCHA 0977 04527000 OI INPMSTA(@15),B'00000001' 0977 04528000 * INMVCHA->INPMCON=OPOPTSET; /* OPTION SET */ 04529000 NI INPMCON(@15),B'01111111' 0978 04530000 * RETURN; 0979 04531000 B @EL00014 0979 04532000 *OPNOCHAN: 0980 04533000 * ; /* NOCHANNEL INIT. */ 04534000 OPNOCHAN DS 0H 0981 04535000 * IF INMVCHA->INPMCON=OPOPTSET&INMVCHA->INPMSTA^=OPNOCHN THEN/* 0981 04536000 * MUTUAL EXCLUSIVENESS? */ 04537000 L @15,INMVCHA 0981 04538000 TM INPMCON(@15),B'10000000' 0981 04539000 BNZ @RF00981 0981 04540000 TM INPMSTA(@15),B'00000001' 0981 04541000 BZ @RF00981 0981 04542000 * DO; 0982 04543000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04544000 NI INCOOPIC,B'01111111' 0983 04545000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04546000 OI INCOOPIV,B'00000001' 0984 04547000 * INCOXINV='1'B; 0985 04548000 OI INCOXINV,B'00000100' 0985 04549000 * END; 0986 04550000 * INMVCHA->INPMSTA=OPNOCHN; /* NOCHANNEL OPTION */ 04551000 @RF00981 L @15,INMVCHA 0987 04552000 NI INPMSTA(@15),B'11111110' 0987 04553000 * INMVCHA->INPMCON=OPOPTSET; /* OPTION SET */ 04554000 NI INPMCON(@15),B'01111111' 0988 04555000 * RETURN; 0989 04556000 * 0989 04557000 B @EL00014 0989 04558000 * /*****************************************************************/ 04559000 * /* */ 04560000 * /* INTERVAL INITIALIZATION */ 04561000 * /* */ 04562000 * /*****************************************************************/ 04563000 * 0990 04564000 *OPINTVAL: 0990 04565000 * ; 0990 04566000 OPINTVAL DS 0H 0991 04567000 * IF INCOINTC=OPOPTSET&SYPRMV01^=INCOINTV THEN 0991 04568000 TM INCOINTC,B'10000000' 0991 04569000 BNZ @RF00991 0991 04570000 L @15,SYPRMV01 0991 04571000 CH @15,INCOINTV 0991 04572000 BE @RF00991 0991 04573000 * DO; 0992 04574000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04575000 NI INCOOPIC,B'01111111' 0993 04576000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04577000 OI INCOOPIV,B'00000001' 0994 04578000 * INCOXINV='1'B; 0995 04579000 OI INCOXINV,B'00000100' 0995 04580000 * END; 0996 04581000 * INCOINTV=SYPRMV01; 0997 04582000 @RF00991 L @15,SYPRMV01 0997 04583000 STH @15,INCOINTV 0997 04584000 * INCOINTC=OPOPTSET; 0998 04585000 NI INCOINTC,B'01111111' 0998 04586000 * IF INCOINTVOP60MIN THEN /* VALUE GREATER THAN 60 MIN? */ 04601000 @RF00999 LA @15,60 1006 04602000 CH @15,INCOINTV 1006 04603000 BNL @RF01006 1006 04604000 * DO; 1007 04605000 * INCOINTV=OP60MIN; /* SET VALUE = 60 MIN */ 04606000 STH @15,INCOINTV 1008 04607000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04608000 NI INCOOPIC,B'01111111' 1009 04609000 * INCOOPIV='1'B; /* REQUEST OPERATOR INTERVENTION */ 04610000 OI INCOOPIV,B'00000001' 1010 04611000 * INCOXINV='1'B; 1011 04612000 OI INCOXINV,B'00000100' 1011 04613000 * END; 1012 04614000 * RETURN; 1013 04615000 * 1013 04616000 B @EL00014 1013 04617000 * /*****************************************************************/ 04618000 * /* */ 04619000 * /* TAPE DEVICE INITIALIZATION */ 04620000 * /* */ 04621000 * /*****************************************************************/ 04622000 * 1014 04623000 *OPTAPE: 1014 04624000 * ; /* TAPE INIT. */ 04625000 OPTAPE DS 0H 1015 04626000 * IF INMVDEV->INPMTAPE(OPCNTRL)=OPOPTSET&INMVDEV->INPMTAPE(OPSTATUS) 04627000 * ^=OPTAPDEV THEN /* MUTUAL EXCLUSIVENESS? */ 04628000 L @15,INMVDEV 1015 04629000 TM INPMTAPE(@15),B'10000000' 1015 04630000 BNZ @RF01015 1015 04631000 TM INPMTAPE+1(@15),B'10000000' 1015 04632000 BO @RF01015 1015 04633000 * DO; 1016 04634000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04635000 NI INCOOPIC,B'01111111' 1017 04636000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04637000 OI INCOOPIV,B'00000001' 1018 04638000 * INCOXINV='1'B; 1019 04639000 OI INCOXINV,B'00000100' 1019 04640000 * END; 1020 04641000 * INMVDEV->INPMTAPE(OPSTATUS)=OPTAPDEV;/* TAPE DEVICE */ 04642000 @RF01015 L @15,INMVDEV 1021 04643000 OI INPMTAPE+1(@15),B'10000000' 1021 04644000 * INMVDEV->INPMTAPE(OPCNTRL)=OPOPTSET;/* OPTION SET */ 04645000 NI INPMTAPE(@15),B'01111111' 1022 04646000 * INMVDEV->INPMCON=OPOPTSET; /* OPTION SET */ 04647000 NI INPMCON(@15),B'01111111' 1023 04648000 * RETURN; 1024 04649000 B @EL00014 1024 04650000 *OPNOTAPE: 1025 04651000 * ; /* NO TAPE INIT. */ 04652000 OPNOTAPE DS 0H 1026 04653000 * IF INMVDEV->INPMTAPE(OPCNTRL)=OPOPTSET&INMVDEV->INPMTAPE(OPSTATUS) 04654000 * ^=OPNOTADV THEN /* MUTUAL EXCLUSIVE? */ 04655000 L @15,INMVDEV 1026 04656000 TM INPMTAPE(@15),B'10000000' 1026 04657000 BNZ @RF01026 1026 04658000 TM INPMTAPE+1(@15),B'10000000' 1026 04659000 BZ @RF01026 1026 04660000 * DO; 1027 04661000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04662000 NI INCOOPIC,B'01111111' 1028 04663000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04664000 OI INCOOPIV,B'00000001' 1029 04665000 * INCOXINV='1'B; 1030 04666000 OI INCOXINV,B'00000100' 1030 04667000 * END; 1031 04668000 * INMVDEV->INPMTAPE(OPSTATUS)=OPNOTADV;/* NOTAPE */ 04669000 @RF01026 L @15,INMVDEV 1032 04670000 NI INPMTAPE+1(@15),B'01111111' 1032 04671000 * INMVDEV->INPMTAPE(OPCNTRL)=OPOPTSET;/* OPTION SET */ 04672000 NI INPMTAPE(@15),B'01111111' 1033 04673000 * INMVDEV->INPMCON=OPOPTSET; /* OPTION SET */ 04674000 NI INPMCON(@15),B'01111111' 1034 04675000 * RETURN; 1035 04676000 * 1035 04677000 B @EL00014 1035 04678000 * /*****************************************************************/ 04679000 * /* */ 04680000 * /* GRAPHICS DEVICE INITIALIZATION */ 04681000 * /* */ 04682000 * /*****************************************************************/ 04683000 * 1036 04684000 *OPGRAPH: 1036 04685000 * ; /* GRAPH INIT. */ 04686000 OPGRAPH DS 0H 1037 04687000 * IF INMVDEV->INPMGRAP(OPCNTRL)=OPOPTSET&INMVDEV->INPMGRAP(OPSTATUS) 04688000 * ^=OPGRAPHC THEN /* MUTUAL EXCLUSIVE? */ 04689000 L @15,INMVDEV 1037 04690000 TM INPMGRAP(@15),B'00010000' 1037 04691000 BNZ @RF01037 1037 04692000 TM INPMGRAP+1(@15),B'00010000' 1037 04693000 BO @RF01037 1037 04694000 * DO; 1038 04695000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04696000 NI INCOOPIC,B'01111111' 1039 04697000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04698000 OI INCOOPIV,B'00000001' 1040 04699000 * INCOXINV='1'B; 1041 04700000 OI INCOXINV,B'00000100' 1041 04701000 * END; 1042 04702000 * INMVDEV->INPMGRAP(OPSTATUS)=OPGRAPHC;/* GRAPHICS DEVICE */ 04703000 @RF01037 L @15,INMVDEV 1043 04704000 OI INPMGRAP+1(@15),B'00010000' 1043 04705000 * INMVDEV->INPMGRAP(OPCNTRL)=OPOPTSET;/* OPTION SET */ 04706000 NI INPMGRAP(@15),B'11101111' 1044 04707000 * INMVDEV->INPMCON=OPOPTSET; /* OPTION SET */ 04708000 NI INPMCON(@15),B'01111111' 1045 04709000 * RETURN; 1046 04710000 B @EL00014 1046 04711000 *OPNOGRAP: 1047 04712000 * ; /* NOGRAPH INIT. */ 04713000 OPNOGRAP DS 0H 1048 04714000 * IF INMVDEV->INPMGRAP(OPCNTRL)=OPOPTSET&INMVDEV->INPMGRAP(OPSTATUS) 04715000 * ^=OPNOGRAC THEN /* MUTUAL EXCLUSIVE? */ 04716000 L @15,INMVDEV 1048 04717000 TM INPMGRAP(@15),B'00010000' 1048 04718000 BNZ @RF01048 1048 04719000 TM INPMGRAP+1(@15),B'00010000' 1048 04720000 BZ @RF01048 1048 04721000 * DO; 1049 04722000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04723000 NI INCOOPIC,B'01111111' 1050 04724000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04725000 OI INCOOPIV,B'00000001' 1051 04726000 * INCOXINV='1'B; 1052 04727000 OI INCOXINV,B'00000100' 1052 04728000 * END; 1053 04729000 * INMVDEV->INPMGRAP(OPSTATUS)=OPNOGRAC;/* NOGRAPH */ 04730000 @RF01048 L @15,INMVDEV 1054 04731000 NI INPMGRAP+1(@15),B'11101111' 1054 04732000 * INMVDEV->INPMGRAP(OPCNTRL)=OPOPTSET;/* OPTION SET */ 04733000 NI INPMGRAP(@15),B'11101111' 1055 04734000 * INMVDEV->INPMCON=OPOPTSET; /* OPTION SET */ 04735000 NI INPMCON(@15),B'01111111' 1056 04736000 * RETURN; 1057 04737000 * 1057 04738000 B @EL00014 1057 04739000 * /*****************************************************************/ 04740000 * /* */ 04741000 * /* UNIT RECORD DEVICE INITIALIZATION */ 04742000 * /* */ 04743000 * /*****************************************************************/ 04744000 * 1058 04745000 *OPUNRC: 1058 04746000 * ; /* UNITR INIT. */ 04747000 OPUNRC DS 0H 1059 04748000 * IF INMVDEV->INPMUNIT(OPCNTRL)=OPOPTSET&INMVDEV->INPMUNIT(OPSTATUS) 04749000 * ^=OPUNITRC THEN /* MUTUAL EXCLUSIVE? */ 04750000 L @15,INMVDEV 1059 04751000 TM INPMUNIT(@15),B'00001000' 1059 04752000 BNZ @RF01059 1059 04753000 TM INPMUNIT+1(@15),B'00001000' 1059 04754000 BO @RF01059 1059 04755000 * DO; 1060 04756000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04757000 NI INCOOPIC,B'01111111' 1061 04758000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04759000 OI INCOOPIV,B'00000001' 1062 04760000 * INCOXINV='1'B; 1063 04761000 OI INCOXINV,B'00000100' 1063 04762000 * END; 1064 04763000 * INMVDEV->INPMUNIT(OPSTATUS)=OPUNITRC;/* UNIT RECORD DEVICE */ 04764000 @RF01059 L @15,INMVDEV 1065 04765000 OI INPMUNIT+1(@15),B'00001000' 1065 04766000 * INMVDEV->INPMUNIT(OPCNTRL)=OPOPTSET;/* OPTION SET */ 04767000 NI INPMUNIT(@15),B'11110111' 1066 04768000 * INMVDEV->INPMCON=OPOPTSET; /* OPTION SET */ 04769000 NI INPMCON(@15),B'01111111' 1067 04770000 * RETURN; 1068 04771000 B @EL00014 1068 04772000 *OPNOUNRC: 1069 04773000 * ; /* NOUNITR INIT. */ 04774000 OPNOUNRC DS 0H 1070 04775000 * IF INMVDEV->INPMUNIT(OPCNTRL)=OPOPTSET&INMVDEV->INPMUNIT(OPSTATUS) 04776000 * ^=OPNOUNIT THEN /* MUTUAL EXCLUSIVE? */ 04777000 L @15,INMVDEV 1070 04778000 TM INPMUNIT(@15),B'00001000' 1070 04779000 BNZ @RF01070 1070 04780000 TM INPMUNIT+1(@15),B'00001000' 1070 04781000 BZ @RF01070 1070 04782000 * DO; 1071 04783000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04784000 NI INCOOPIC,B'01111111' 1072 04785000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04786000 OI INCOOPIV,B'00000001' 1073 04787000 * INCOXINV='1'B; 1074 04788000 OI INCOXINV,B'00000100' 1074 04789000 * END; 1075 04790000 * INMVDEV->INPMUNIT(OPSTATUS)=OPNOUNIT;/* NOUNITR */ 04791000 @RF01070 L @15,INMVDEV 1076 04792000 NI INPMUNIT+1(@15),B'11110111' 1076 04793000 * INMVDEV->INPMUNIT(OPCNTRL)=OPOPTSET;/* OPTION SET */ 04794000 NI INPMUNIT(@15),B'11110111' 1077 04795000 * INMVDEV->INPMCON=OPOPTSET; /* OPTION SET */ 04796000 NI INPMCON(@15),B'01111111' 1078 04797000 * RETURN; 1079 04798000 * 1079 04799000 B @EL00014 1079 04800000 * /*****************************************************************/ 04801000 * /* */ 04802000 * /* TELEPROCESSING COMMUNICATIONS DEVICE INITIALIZATION */ 04803000 * /* */ 04804000 * /*****************************************************************/ 04805000 * 1080 04806000 *OPTPCOM: 1080 04807000 * ; /* COM INIT. */ 04808000 OPTPCOM DS 0H 1081 04809000 * IF INMVDEV->INPMTP(OPCNTRL)=OPOPTSET&INMVDEV->INPMTP(OPSTATUS)^= 04810000 * OPTP THEN /* MUTUAL EXCLUSIVE? */ 04811000 L @15,INMVDEV 1081 04812000 TM INPMTP(@15),B'01000000' 1081 04813000 BNZ @RF01081 1081 04814000 TM INPMTP+1(@15),B'01000000' 1081 04815000 BO @RF01081 1081 04816000 * DO; 1082 04817000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04818000 NI INCOOPIC,B'01111111' 1083 04819000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04820000 OI INCOOPIV,B'00000001' 1084 04821000 * INCOXINV='1'B; 1085 04822000 OI INCOXINV,B'00000100' 1085 04823000 * END; 1086 04824000 * INMVDEV->INPMTP(OPSTATUS)=OPTP; /* TP DEVICE */ 04825000 @RF01081 L @15,INMVDEV 1087 04826000 OI INPMTP+1(@15),B'01000000' 1087 04827000 * INMVDEV->INPMTP(OPCNTRL)=OPOPTSET;/* OPTION SET */ 04828000 NI INPMTP(@15),B'10111111' 1088 04829000 * INMVDEV->INPMCON=OPOPTSET; /* OPTION SET */ 04830000 NI INPMCON(@15),B'01111111' 1089 04831000 * RETURN; 1090 04832000 B @EL00014 1090 04833000 *OPNOTPCM: 1091 04834000 * ; /* NOCOM INIT. */ 04835000 OPNOTPCM DS 0H 1092 04836000 * IF INMVDEV->INPMTP(OPCNTRL)=OPOPTSET&INMVDEV->INPMTP(OPSTATUS)^= 04837000 * OPNOTP THEN /* MUTUAL EXCLUSIVE? */ 04838000 L @15,INMVDEV 1092 04839000 TM INPMTP(@15),B'01000000' 1092 04840000 BNZ @RF01092 1092 04841000 TM INPMTP+1(@15),B'01000000' 1092 04842000 BZ @RF01092 1092 04843000 * DO; 1093 04844000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04845000 NI INCOOPIC,B'01111111' 1094 04846000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04847000 OI INCOOPIV,B'00000001' 1095 04848000 * INCOXINV='1'B; 1096 04849000 OI INCOXINV,B'00000100' 1096 04850000 * END; 1097 04851000 * INMVDEV->INPMTP(OPSTATUS)=OPNOTP;/* NOTP */ 04852000 @RF01092 L @15,INMVDEV 1098 04853000 NI INPMTP+1(@15),B'10111111' 1098 04854000 * INMVDEV->INPMTP(OPCNTRL)=OPOPTSET;/* OPTION SET */ 04855000 NI INPMTP(@15),B'10111111' 1099 04856000 * INMVDEV->INPMCON=OPOPTSET; /* OPTION SET */ 04857000 NI INPMCON(@15),B'01111111' 1100 04858000 * RETURN; 1101 04859000 * 1101 04860000 B @EL00014 1101 04861000 * /*****************************************************************/ 04862000 * /* */ 04863000 * /* DASD DEVICE INITIALIZATION */ 04864000 * /* */ 04865000 * /*****************************************************************/ 04866000 * 1102 04867000 *OPDASD: 1102 04868000 * ; 1102 04869000 OPDASD DS 0H 1103 04870000 * IF INMVDEV->INPMDA(OPCNTRL)=OPOPTSET&INMVDEV->INPMDA(OPSTATUS)^= 04871000 * OPDASDEV THEN /* MUTUAL EXCLUSIVE? */ 04872000 L @15,INMVDEV 1103 04873000 TM INPMDA(@15),B'00100000' 1103 04874000 BNZ @RF01103 1103 04875000 TM INPMDA+1(@15),B'00100000' 1103 04876000 BO @RF01103 1103 04877000 * DO; 1104 04878000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04879000 NI INCOOPIC,B'01111111' 1105 04880000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04881000 OI INCOOPIV,B'00000001' 1106 04882000 * INCOXINV='1'B; 1107 04883000 OI INCOXINV,B'00000100' 1107 04884000 * END; 1108 04885000 * INMVDEV->INPMDA(OPSTATUS)=OPDASDEV;/* DASD DEVICE */ 04886000 @RF01103 L @15,INMVDEV 1109 04887000 OI INPMDA+1(@15),B'00100000' 1109 04888000 * INMVDEV->INPMDA(OPCNTRL)=OPOPTSET;/* OPTION SET */ 04889000 NI INPMDA(@15),B'11011111' 1110 04890000 * INMVDEV->INPMCON=OPOPTSET; /* OPTION SET */ 04891000 NI INPMCON(@15),B'01111111' 1111 04892000 * RETURN; 1112 04893000 B @EL00014 1112 04894000 *OPNODASD: 1113 04895000 * ; /* NODASD INIT. */ 04896000 OPNODASD DS 0H 1114 04897000 * IF INMVDEV->INPMDA(OPCNTRL)=OPOPTSET&INMVDEV->INPMDA(OPSTATUS)^= 04898000 * OPNODAS THEN /* MUTUAL EXCLUSIVE? */ 04899000 L @15,INMVDEV 1114 04900000 TM INPMDA(@15),B'00100000' 1114 04901000 BNZ @RF01114 1114 04902000 TM INPMDA+1(@15),B'00100000' 1114 04903000 BZ @RF01114 1114 04904000 * DO; 1115 04905000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04906000 NI INCOOPIC,B'01111111' 1116 04907000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04908000 OI INCOOPIV,B'00000001' 1117 04909000 * INCOXINV='1'B; 1118 04910000 OI INCOXINV,B'00000100' 1118 04911000 * END; 1119 04912000 * INMVDEV->INPMDA(OPSTATUS)=OPNODAS;/* NODASD */ 04913000 @RF01114 L @15,INMVDEV 1120 04914000 NI INPMDA+1(@15),B'11011111' 1120 04915000 * INMVDEV->INPMDA(OPCNTRL)=OPOPTSET;/* OPTION SET */ 04916000 NI INPMDA(@15),B'11011111' 1121 04917000 * INMVDEV->INPMCON=OPOPTSET; /* OPTION SET */ 04918000 NI INPMCON(@15),B'01111111' 1122 04919000 * RETURN; 1123 04920000 * 1123 04921000 B @EL00014 1123 04922000 * /*****************************************************************/ 04923000 * /* */ 04924000 * /* NODEVICE INITIALIZATION */ 04925000 * /* */ 04926000 * /*****************************************************************/ 04927000 * 1124 04928000 *OPNODEV: 1124 04929000 * ; 1124 04930000 OPNODEV DS 0H 1125 04931000 * IF INMVDEV->INPMDEVF(OPSTATUS)^=OPNODEVS THEN/* MUTUAL 1125 04932000 * EXCLUSIVENESS? */ 04933000 L @01,INMVDEV 1125 04934000 CLI INPMDEVF+1(@01),B'00000000' 1125 04935000 BE @RF01125 1125 04936000 * DO; 1126 04937000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04938000 NI INCOOPIC,B'01111111' 1127 04939000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04940000 OI INCOOPIV,B'00000001' 1128 04941000 * INCOXINV='1'B; 1129 04942000 OI INCOXINV,B'00000100' 1129 04943000 * END; 1130 04944000 * INMVDEV->INPMDEVF(OPSTATUS)=OPNODEVS;/* NODEVICE */ 04945000 @RF01125 L @15,INMVDEV 1131 04946000 MVI INPMDEVF+1(@15),B'00000000' 1131 04947000 * INMVDEV->INPMDEVF(OPCNTRL)=OPOPTSET;/* OPTION SET */ 04948000 MVI INPMDEVF(@15),B'00000000' 1132 04949000 * INMVDEV->INPMCON=OPOPTSET; /* OPTION SET */ 04950000 NI INPMCON(@15),B'01111111' 1133 04951000 * RETURN; 1134 04952000 * 1134 04953000 B @EL00014 1134 04954000 * /*****************************************************************/ 04955000 * /* */ 04956000 * /* CHARACTER READER DEVICE INITIALIZATION */ 04957000 * /* */ 04958000 * /*****************************************************************/ 04959000 * 1135 04960000 *OPCHRDR: 1135 04961000 * ; /* CHRDR INIT. */ 04962000 OPCHRDR DS 0H 1136 04963000 * IF INMVDEV->INPMCRDR(OPCNTRL)=OPOPTSET&INMVDEV->INPMCRDR(OPSTATUS) 04964000 * ^=OPCRDR THEN /* MUTUAL EXCLUSIVE? */ 04965000 L @15,INMVDEV 1136 04966000 TM INPMCRDR(@15),B'00000100' 1136 04967000 BNZ @RF01136 1136 04968000 TM INPMCRDR+1(@15),B'00000100' 1136 04969000 BO @RF01136 1136 04970000 * DO; 1137 04971000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04972000 NI INCOOPIC,B'01111111' 1138 04973000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 04974000 OI INCOOPIV,B'00000001' 1139 04975000 * INCOXINV='1'B; 1140 04976000 OI INCOXINV,B'00000100' 1140 04977000 * END; 1141 04978000 * INMVDEV->INPMCRDR(OPSTATUS)=OPCRDR;/* CHRDR DEVICE */ 04979000 @RF01136 L @15,INMVDEV 1142 04980000 OI INPMCRDR+1(@15),B'00000100' 1142 04981000 * INMVDEV->INPMCRDR(OPCNTRL)=OPOPTSET;/* OPTION SET */ 04982000 NI INPMCRDR(@15),B'11111011' 1143 04983000 * INMVDEV->INPMCON=OPOPTSET; /* OPTION SET */ 04984000 NI INPMCON(@15),B'01111111' 1144 04985000 * RETURN; 1145 04986000 B @EL00014 1145 04987000 *OPNOCHR: 1146 04988000 * ; 1146 04989000 OPNOCHR DS 0H 1147 04990000 * IF INMVDEV->INPMCRDR(OPCNTRL)=OPOPTSET&INMVDEV->INPMCRDR(OPSTATUS) 04991000 * ^=OPNOCRDR THEN /* MUTUAL EXCLUSIVE? */ 04992000 L @15,INMVDEV 1147 04993000 TM INPMCRDR(@15),B'00000100' 1147 04994000 BNZ @RF01147 1147 04995000 TM INPMCRDR+1(@15),B'00000100' 1147 04996000 BZ @RF01147 1147 04997000 * DO; 1148 04998000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 04999000 NI INCOOPIC,B'01111111' 1149 05000000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 05001000 OI INCOOPIV,B'00000001' 1150 05002000 * INCOXINV='1'B; 1151 05003000 OI INCOXINV,B'00000100' 1151 05004000 * END; 1152 05005000 * INMVDEV->INPMCRDR(OPSTATUS)=OPNOCRDR;/* NOCHRDR */ 05006000 @RF01147 L @15,INMVDEV 1153 05007000 NI INPMCRDR+1(@15),B'11111011' 1153 05008000 * INMVDEV->INPMCRDR(OPCNTRL)=OPOPTSET;/* OPTION SET */ 05009000 NI INPMCRDR(@15),B'11111011' 1154 05010000 * INMVDEV->INPMCON=OPOPTSET; /* OPTION SET */ 05011000 NI INPMCON(@15),B'01111111' 1155 05012000 * RETURN; 1156 05013000 * 1156 05014000 B @EL00014 1156 05015000 * /*****************************************************************/ 05016000 * /* */ 05017000 * /* REPORT OPTION INITIALIZATION */ 05018000 * /* */ 05019000 * /*****************************************************************/ 05020000 * 1157 05021000 *OPRPRT1: 1157 05022000 * ; /* DEFER INIT. */ 05023000 OPRPRT1 DS 0H 1158 05024000 * IF INCOREPC=OPOPTSET&INCOREPV^=OPDEFER THEN/* MUTUAL EXCLUSIVE? */ 05025000 TM INCOREPC,B'10000000' 1158 05026000 BNZ @RF01158 1158 05027000 TM INCOREPV,B'00000001' 1158 05028000 BNO @RT01158 1158 05029000 TM INCOREPV,B'00000010' 1158 05030000 BZ @RF01158 1158 05031000 @RT01158 DS 0H 1159 05032000 * DO; 1159 05033000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05034000 NI INCOOPIC,B'01111111' 1160 05035000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 05036000 OI INCOOPIV,B'00000001' 1161 05037000 * INCOXINV='1'B; 1162 05038000 OI INCOXINV,B'00000100' 1162 05039000 * END; 1163 05040000 * INCOREPV=OPDEFER; /* REPORT(DEFER) */ 05041000 @RF01158 NI INCOREPV,B'11111101' 1164 05042000 OI INCOREPV,B'00000001' 1164 05043000 * INCOREPC=OPOPTSET; /* OPTION SET */ 05044000 NI INCOREPC,B'01111111' 1165 05045000 * RETURN; 1166 05046000 B @EL00014 1166 05047000 *OPRPRT2: 1167 05048000 * ; /* REALTIME INIT. */ 05049000 OPRPRT2 DS 0H 1168 05050000 * IF INCOREPC=OPOPTSET&INCOREPV^=OPREALTM THEN/* MUTUAL EXCLUSIVE? */ 05051000 TM INCOREPC,B'10000000' 1168 05052000 BNZ @RF01168 1168 05053000 TM INCOREPV,B'00000010' 1168 05054000 BNO @RT01168 1168 05055000 TM INCOREPV,B'00000001' 1168 05056000 BZ @RF01168 1168 05057000 @RT01168 DS 0H 1169 05058000 * DO; 1169 05059000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05060000 NI INCOOPIC,B'01111111' 1170 05061000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 05062000 OI INCOOPIV,B'00000001' 1171 05063000 * INCOXINV='1'B; 1172 05064000 OI INCOXINV,B'00000100' 1172 05065000 * END; 1173 05066000 * INCOREPV=OPREALTM; /* REPORT(REALTIME) */ 05067000 @RF01168 NI INCOREPV,B'11111110' 1174 05068000 OI INCOREPV,B'00000010' 1174 05069000 * INCOREPC=OPOPTSET; /* OPTION SET */ 05070000 NI INCOREPC,B'01111111' 1175 05071000 * RETURN; 1176 05072000 B @EL00014 1176 05073000 *OPNORPT: 1177 05074000 * ; /* NOREPORT INIT. */ 05075000 OPNORPT DS 0H 1178 05076000 * IF INCOREPC=OPOPTSET&INCOREPV^=OPNOREPT THEN/* MUTUAL EXCLUSIVE? */ 05077000 TM INCOREPC,B'10000000' 1178 05078000 BNZ @RF01178 1178 05079000 TM INCOREPV,B'00000011' 1178 05080000 BZ @RF01178 1178 05081000 * DO; 1179 05082000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05083000 NI INCOOPIC,B'01111111' 1180 05084000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 05085000 OI INCOOPIV,B'00000001' 1181 05086000 * INCOXINV='1'B; 1182 05087000 OI INCOXINV,B'00000100' 1182 05088000 * END; 1183 05089000 * INCOREPV=OPNOREPT; /* NOREPORT */ 05090000 @RF01178 NI INCOREPV,B'11111100' 1184 05091000 * INCOREPC=OPOPTSET; /* OPTION SET */ 05092000 NI INCOREPC,B'01111111' 1185 05093000 * RETURN; 1186 05094000 * 1186 05095000 B @EL00014 1186 05096000 * /*****************************************************************/ 05097000 * /* */ 05098000 * /* STOP OPTION INITIALIZATION. AN INVALID VALUE OR MUTUAL */ 05099000 * /* EXCLUSIVE ERROR EXISTS FOR THE STOP OPTION IN MINUTES OR HOURS*/ 05100000 * /* IN THE FOLLOWING TWO WAYS: 1)IF STOP WAS PREVIOUSLY SPECIFIED */ 05101000 * /* IN THE SAME SOURCE AND THE TIME SPECIFIED WAS IN MINUTES OR */ 05102000 * /* HOURS AND A DIFFERENT VALUE (TIME) IS REQUESTED. 2) THE STOP */ 05103000 * /* OPTION WAS PREVIOUSLY SPECIFIED IN THE SAME SOURCE AND THE */ 05104000 * /* PREVIOUS REQUEST WAS FOR 'NOSTOP' */ 05105000 * /* */ 05106000 * /*****************************************************************/ 05107000 * 1187 05108000 *OPNOSTOP: 1187 05109000 * ; /* NOSTOP INIT. */ 05110000 OPNOSTOP DS 0H 1188 05111000 * IF INCOSTPC=OPOPTSET&INCOSTPS^=OPNOSTP THEN/* MUTUAL EXCLUSIVE? */ 05112000 TM INCOSTPC,B'11000000' 1188 05113000 BNZ @RF01188 1188 05114000 * DO; 1189 05115000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05116000 NI INCOOPIC,B'01111111' 1190 05117000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 05118000 OI INCOOPIV,B'00000001' 1191 05119000 * INCOXINV='1'B; 1192 05120000 OI INCOXINV,B'00000100' 1192 05121000 * END; 1193 05122000 * INCOSTPS=OPNOSTP; /* NOSTOP */ 05123000 @RF01188 DS 0H 1195 05124000 * INCOSTPC=OPOPTSET; /* OPTION SET */ 05125000 OI INCOSTPS,B'01000000' 1195 05126000 NI INCOSTPC,B'01111111' 1195 05127000 * RETURN; 1196 05128000 B @EL00014 1196 05129000 *OPSTOP1: 1197 05130000 * ; /* STOP H INIT. */ 05131000 OPSTOP1 DS 0H 1198 05132000 * IF INCOSTPC=OPOPTSET&( /* IF PREVIOUSLY SPECIFIED AND */ 05133000 * (INCOSTPU=OPUNTHRS&INCOSTPV^=SYPRMV01)|/* NOT SAME # HRS OR */ 05134000 * (INCOSTPU^=OPUNTHRS&INCOSTPV^=SYPRMV01*60)|/* NOT EQUIV # 1198 05135000 * MIN. OR */ 05136000 * INCOSTPS=OPNOSTP)THEN /* NOSTOP */ 05137000 TM INCOSTPC,B'10000000' 1198 05138000 BNZ @RF01198 1198 05139000 TM INCOSTPU,B'00100000' 1198 05140000 BNO @GL00048 1198 05141000 LH @15,INCOSTPV 1198 05142000 C @15,SYPRMV01 1198 05143000 BNE @RT01198 1198 05144000 @GL00048 TM INCOSTPU,B'00100000' 1198 05145000 BO @GL00047 1198 05146000 L @15,SYPRMV01 1198 05147000 MH @15,@CH00529 1198 05148000 CH @15,INCOSTPV 1198 05149000 BNE @RT01198 1198 05150000 @GL00047 TM INCOSTPS,B'01000000' 1198 05151000 BNO @RF01198 1198 05152000 @RT01198 DS 0H 1199 05153000 * DO; 1199 05154000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05155000 NI INCOOPIC,B'01111111' 1200 05156000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 05157000 OI INCOOPIV,B'00000001' 1201 05158000 * INCOXINV='1'B; 1202 05159000 OI INCOXINV,B'00000100' 1202 05160000 * END; 1203 05161000 * IF SYPRMV01>OPMAXVAL THEN /* VALUE TOO LARGE? */ 05162000 @RF01198 L @15,OPMAXVAL 1204 05163000 C @15,SYPRMV01 1204 05164000 BNL @RF01204 1204 05165000 * DO; 1205 05166000 * SYPRMV01=OPMAXVAL; /* SET TO MAXIMUM VALUE */ 05167000 ST @15,SYPRMV01 1206 05168000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05169000 NI INCOOPIC,B'01111111' 1207 05170000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 05171000 OI INCOOPIV,B'00000001' 1208 05172000 * INCOXINV='1'B; 1209 05173000 OI INCOXINV,B'00000100' 1209 05174000 * END; 1210 05175000 * IF SYPRMV01<1 THEN /* VALUE BELOW MINIMUM? */ 05176000 @RF01204 LA @15,1 1211 05177000 C @15,SYPRMV01 1211 05178000 BNH @RF01211 1211 05179000 * DO; 1212 05180000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05181000 NI INCOOPIC,B'01111111' 1213 05182000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 05183000 OI INCOOPIV,B'00000001' 1214 05184000 * INCOXINV='1'B; 1215 05185000 OI INCOXINV,B'00000100' 1215 05186000 * SYPRMV01=1; /* SET TO MINUMUM */ 05187000 ST @15,SYPRMV01 1216 05188000 * END; 1217 05189000 * INCOSTPS=OPSTP; /* STOP SPECIFIED */ 05190000 @RF01211 DS 0H 1219 05191000 * INCOSTPU=OPUNTHRS; /* TIME IN HOURS */ 05192000 * INCOSTPC=OPOPTSET; /* OPTION SET */ 05193000 OI INCOSTPU,B'00100000' 1220 05194000 NI INCOSTPS,B'00111111' 1220 05195000 * INCOSTPV=SYPRMV01; /* MOVE IN VALUE */ 05196000 MVC INCOSTPV(2),SYPRMV01+2 1221 05197000 * RETURN; 1222 05198000 B @EL00014 1222 05199000 *OPSTOP2: 1223 05200000 * ; /* STOP M INIT. */ 05201000 OPSTOP2 DS 0H 1224 05202000 * IF INCOSTPC=OPOPTSET&( /* IF PREVIOUSLY SPECIFIED AND */ 05203000 * (INCOSTPU=OPUNTMIN&INCOSTPV^=SYPRMV01)|/* NOT SAME # MIN. OR */ 05204000 * (INCOSTPU^=OPUNTMIN&INCOSTPV/60^=SYPRMV01&INCOSTPV//60^=0)|/* 05205000 * NOT EQUIV. # HRS. OR */ 05206000 * INCOSTPS=OPNOSTP)THEN /* NOSTOP */ 05207000 TM INCOSTPC,B'10000000' 1224 05208000 BNZ @RF01224 1224 05209000 TM INCOSTPU,B'00100000' 1224 05210000 BNZ @GL00053 1224 05211000 LH @15,INCOSTPV 1224 05212000 C @15,SYPRMV01 1224 05213000 BNE @RT01224 1224 05214000 @GL00053 TM INCOSTPU,B'00100000' 1224 05215000 BZ @GL00052 1224 05216000 LH @15,INCOSTPV 1224 05217000 LA @14,60 1224 05218000 LR @00,@15 1224 05219000 SRDA @00,32 1224 05220000 DR @00,@14 1224 05221000 C @01,SYPRMV01 1224 05222000 BE @GL00052 1224 05223000 LR @00,@15 1224 05224000 SRDA @00,32 1224 05225000 DR @00,@14 1224 05226000 LTR @00,@00 1224 05227000 BNZ @RT01224 1224 05228000 @GL00052 TM INCOSTPS,B'01000000' 1224 05229000 BNO @RF01224 1224 05230000 @RT01224 DS 0H 1225 05231000 * DO; 1225 05232000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05233000 NI INCOOPIC,B'01111111' 1226 05234000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 05235000 OI INCOOPIV,B'00000001' 1227 05236000 * INCOXINV='1'B; 1228 05237000 OI INCOXINV,B'00000100' 1228 05238000 * END; 1229 05239000 * IF SYPRMV01>OPMAXVAL*60 THEN /* VALUE TOO LARGE? */ 05240000 @RF01224 L @15,OPMAXVAL 1230 05241000 MH @15,@CH00529 1230 05242000 C @15,SYPRMV01 1230 05243000 BNL @RF01230 1230 05244000 * DO; 1231 05245000 * SYPRMV01=OPMAXVAL*60; /* SET TO MAXIMUM VALUE */ 05246000 ST @15,SYPRMV01 1232 05247000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05248000 NI INCOOPIC,B'01111111' 1233 05249000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 05250000 OI INCOOPIV,B'00000001' 1234 05251000 * INCOXINV='1'B; 1235 05252000 OI INCOXINV,B'00000100' 1235 05253000 * END; 1236 05254000 * IF SYPRMV01<1 THEN /* VALUE BELOW MINIMUM? */ 05255000 @RF01230 LA @15,1 1237 05256000 C @15,SYPRMV01 1237 05257000 BNH @RF01237 1237 05258000 * DO; 1238 05259000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05260000 NI INCOOPIC,B'01111111' 1239 05261000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 05262000 OI INCOOPIV,B'00000001' 1240 05263000 * INCOXINV='1'B; 1241 05264000 OI INCOXINV,B'00000100' 1241 05265000 * SYPRMV01=1; /* SET TO MINIMUM */ 05266000 ST @15,SYPRMV01 1242 05267000 * END; 1243 05268000 * INCOSTPS=OPSTP; /* STOP SPECIFIED */ 05269000 @RF01237 DS 0H 1245 05270000 * INCOSTPU=OPUNTMIN; /* STOP TIME IN MINUTES */ 05271000 * INCOSTPC=OPOPTSET; /* OPTION SET */ 05272000 NI INCOSTPS,B'00011111' 1246 05273000 * INCOSTPV=SYPRMV01; /* MOVE IN VALUE */ 05274000 MVC INCOSTPV(2),SYPRMV01+2 1247 05275000 * RETURN; 1248 05276000 * 1248 05277000 B @EL00014 1248 05278000 * /*****************************************************************/ 05279000 * /* */ 05280000 * /* TRACE OPTION INITIALIZATION */ 05281000 * /* */ 05282000 * /*****************************************************************/ 05283000 * 1249 05284000 *OPTRACE: 1249 05285000 * ; /* TRACE INIT. */ 05286000 OPTRACE DS 0H 1250 05287000 * IF INCOTCEC=OPOPTSET&INCOTCEV^=OPTRC THEN/* MUTUAL EXCLUSIVENESS?*/ 05288000 TM INCOTCEC,B'10000000' 1250 05289000 BNZ @RF01250 1250 05290000 TM INCOTCEV,B'00000001' 1250 05291000 BO @RF01250 1250 05292000 * DO; 1251 05293000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05294000 NI INCOOPIC,B'01111111' 1252 05295000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 05296000 OI INCOOPIV,B'00000001' 1253 05297000 * INCOXINV='1'B; 1254 05298000 OI INCOXINV,B'00000100' 1254 05299000 * END; 1255 05300000 * INCOTCEV=OPTRC; /* TRACE */ 05301000 @RF01250 OI INCOTCEV,B'00000001' 1256 05302000 * INCOTCEC=OPOPTSET; /* OPTION SPECIFIED */ 05303000 NI INCOTCEC,B'01111111' 1257 05304000 * RETURN; 1258 05305000 B @EL00014 1258 05306000 *OPNOTRCE: 1259 05307000 * ; /* NOTRACE INIT. */ 05308000 OPNOTRCE DS 0H 1260 05309000 * IF INCOTCEC=OPOPTSET&INCOTCEV^=OPNOTRC THEN/* MUTUAL 1260 05310000 * EXCLUSIVENESS? */ 05311000 TM INCOTCEC,B'10000000' 1260 05312000 BNZ @RF01260 1260 05313000 TM INCOTCEV,B'00000001' 1260 05314000 BZ @RF01260 1260 05315000 * DO; 1261 05316000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05317000 NI INCOOPIC,B'01111111' 1262 05318000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 05319000 OI INCOOPIV,B'00000001' 1263 05320000 * INCOXINV='1'B; 1264 05321000 OI INCOXINV,B'00000100' 1264 05322000 * END; 1265 05323000 * INCOTCEV=OPNOTRC; /* NOTRACE */ 05324000 @RF01260 NI INCOTCEV,B'11111110' 1266 05325000 * INCOTCEC=OPOPTSET; /* OPTION SPECIFIED */ 05326000 NI INCOTCEC,B'01111111' 1267 05327000 * RETURN; 1268 05328000 * 1268 05329000 B @EL00014 1268 05330000 * /*****************************************************************/ 05331000 * /* */ 05332000 * /* OPERATOR INTERVENTION (OPI) INITIALIZATION */ 05333000 * /* */ 05334000 * /*****************************************************************/ 05335000 * 1269 05336000 *OPOPI: 1269 05337000 * ; /* OPI INIT. */ 05338000 OPOPI DS 0H 1270 05339000 * IF INCOOPIC=OPOPTSET&INCOOPIV^='1'B THEN/* MUTUAL EXCLUSIVENESS? */ 05340000 TM INCOOPIC,B'10000000' 1270 05341000 BNZ @RF01270 1270 05342000 TM INCOOPIV,B'00000001' 1270 05343000 BO @RF01270 1270 05344000 * INCOXINV='1'B; /* OPERATOR INTERVENTION */ 05345000 OI INCOXINV,B'00000100' 1271 05346000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05347000 @RF01270 NI INCOOPIC,B'01111111' 1272 05348000 * INCOOPIV='1'B; 1273 05349000 OI INCOOPIV,B'00000001' 1273 05350000 * RETURN; 1274 05351000 B @EL00014 1274 05352000 *OPNOPI: 1275 05353000 * ; /* NOOPI INIT. */ 05354000 OPNOPI DS 0H 1276 05355000 * IF INCOOPIC=OPOPTSET&INCOOPIV^='0'B THEN/* MUTUAL EXCLUSIVENESS? */ 05356000 TM INCOOPIC,B'10000000' 1276 05357000 BNZ @RF01276 1276 05358000 TM INCOOPIV,B'00000001' 1276 05359000 BZ @RF01276 1276 05360000 * INCOXINV='1'B; 1277 05361000 OI INCOXINV,B'00000100' 1277 05362000 * ELSE 1278 05363000 * DO; 1278 05364000 B @RC01276 1278 05365000 @RF01276 DS 0H 1279 05366000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05367000 NI INCOOPIC,B'01111111' 1279 05368000 * INCOOPIV='0'B; /* NO OPERATOR INTERVENTION */ 05369000 NI INCOOPIV,B'11111110' 1280 05370000 * END; 1281 05371000 * RETURN; 1282 05372000 * 1282 05373000 B @EL00014 1282 05374000 * /*****************************************************************/ 05375000 * /* */ 05376000 * /* CYCLE OPTION INITIALIZATION */ 05377000 * /* */ 05378000 * /*****************************************************************/ 05379000 * 1283 05380000 *OPCYCLE: 1283 05381000 * ; /* CYCLE INIT. */ 05382000 OPCYCLE DS 0H 1284 05383000 * IF INCOCYCC=OPOPTSET&INCOCYCV^=SYPRMV01 THEN/* DIFFERENT VALUE? */ 05384000 TM INCOCYCC,B'10000000' 1284 05385000 BNZ @RF01284 1284 05386000 LH @15,INCOCYCV 1284 05387000 C @15,SYPRMV01 1284 05388000 BE @RF01284 1284 05389000 * DO; 1285 05390000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05391000 NI INCOOPIC,B'01111111' 1286 05392000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 05393000 OI INCOOPIV,B'00000001' 1287 05394000 * INCOXINV='1'B; 1288 05395000 OI INCOXINV,B'00000100' 1288 05396000 * END; 1289 05397000 * IF SYPRMV01>OP999MS THEN /* VALUE TOO LARGE? */ 05398000 @RF01284 LA @15,999 1290 05399000 C @15,SYPRMV01 1290 05400000 BNL @RF01290 1290 05401000 * DO; 1291 05402000 * SYPRMV01=OP999MS; /* SET TO MAXIMUM */ 05403000 ST @15,SYPRMV01 1292 05404000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05405000 NI INCOOPIC,B'01111111' 1293 05406000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 05407000 OI INCOOPIV,B'00000001' 1294 05408000 * INCOXINV='1'B; 1295 05409000 OI INCOXINV,B'00000100' 1295 05410000 * END; 1296 05411000 * IF SYPRMV0199 THEN /* VALUE OUT OF RANGE? */ 05553000 @RF01331 L @07,SYPRMV01 1342 05554000 LTR @07,@07 1342 05555000 BM @RT01342 1342 05556000 CH @07,@CH01420 1342 05557000 BNH @RF01342 1342 05558000 @RT01342 DS 0H 1343 05559000 * DO; 1343 05560000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05561000 NI INCOOPIC,B'01111111' 1344 05562000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 05563000 OI INCOOPIV,B'00000001' 1345 05564000 * INCOXINV='1'B; 1346 05565000 OI INCOXINV,B'00000100' 1346 05566000 * INCOMEMV='00'; /* MOVE IN DEFAULT MEMBER NO. */ 05567000 MVC INCOMEMV(2),@CC00951 1347 05568000 * RETURN; 1348 05569000 B @EL00014 1348 05570000 * END; 1349 05571000 * CALL OPCNVMOD(SYPRMV01,0,OPTMEMBR,2,0,'0'B,'0'B); 1350 05572000 @RF01342 MVC @AL00001+4(24),@AL01350 1350 05573000 LA @07,SYPRMV01 1350 05574000 ST @07,@AL00001 1350 05575000 LA @07,OPTMEMBR 1350 05576000 ST @07,@AL00001+8 1350 05577000 L @15,OPCNVADR 1350 05578000 LA @01,@AL00001 1350 05579000 BALR @14,@15 1350 05580000 * RFY 1351 05581000 * (GPR00P, 1351 05582000 * GPR01P, 1351 05583000 * GPR14P, 1351 05584000 * GPR15P)UNRSTD; 1351 05585000 * GEN(DELETE EPLOC=INMODULE); 1352 05586000 DELETE EPLOC=INMODULE 05587000 * IF OPTMEMBR(1:1)=' ' THEN /* LEADING BLANK? */ 05588000 CLI OPTMEMBR,C' ' 1353 05589000 BNE @RF01353 1353 05590000 * OPTMEMBR(1:1)='0'; /* MAKE BLANK ZERO */ 05591000 MVI OPTMEMBR,C'0' 1354 05592000 * IF INCOMEMC=OPOPTSET&INCOMEMV^=OPTMEMBR THEN/* DIFFERENT VALUE? */ 05593000 @RF01353 TM INCOMEMC,B'10000000' 1355 05594000 BNZ @RF01355 1355 05595000 CLC INCOMEMV(2),OPTMEMBR 1355 05596000 BE @RF01355 1355 05597000 * DO; 1356 05598000 * INCOOPIC=OPOPTSET; /* OPTION SET */ 05599000 NI INCOOPIC,B'01111111' 1357 05600000 * INCOOPIV='1'B; /* OPERATOR INTERVENTION */ 05601000 OI INCOOPIV,B'00000001' 1358 05602000 * INCOXINV='1'B; 1359 05603000 OI INCOXINV,B'00000100' 1359 05604000 * END; 1360 05605000 * INCOMEMV=OPTMEMBR; /* MOVE IN MEMBER NUMBER */ 05606000 @RF01355 MVC INCOMEMV(2),OPTMEMBR 1361 05607000 * INCOMEMC=OPOPTSET; /* OPTION SET */ 05608000 NI INCOMEMC,B'01111111' 1362 05609000 * RETURN; 1363 05610000 B @EL00014 1363 05611000 * END MFOPINIT; 1364 05612000 B @EL00014 1364 05613000 * 1365 05614000 */* PROCEDURE NAME = MFREADIO */ 05615000 */* */ 05616000 */* DESCRIPTIVE NAME = READ ROUTINE */ 05617000 */* */ 05618000 */* FUNCTION = READS IN RECORDS FOR THE MF/1 LIBRARY DATASET */ 05619000 */* */ 05620000 * 1365 05621000 *MFREADIO: 1365 05622000 * PROCEDURE(RERECPTR,RERECLEN,RERECCOR); 1365 05623000 MFREADIO STM @14,@12,@SA00015 1365 05624000 MVC @PC00015(12),0(@01) 1365 05625000 * DECLARE 1366 05626000 * RERECPTR /* PTR TO RECORD READ IN */ 05627000 * PTR(31), 1366 05628000 * RERECLEN /* LENGTH OF RECORD */ 05629000 * FIXED(31), 1366 05630000 * 1 RERECCOR BDY(WORD), /* GETMAIN PARAMETERS */ 05631000 * 2 RESUBPOL /* SUBPOOL */ 05632000 * FIXED(8), 1366 05633000 * 2 RERECSZE /* LENGTH */ 05634000 * FIXED(24), 1366 05635000 * GPR02P /* REG USED IN READ */ 05636000 * REG(2)PTR(31), 1366 05637000 * 1 REWRKARA BASED(RERECPTR), /* WORKAREA FOR NEW RECORD */ 05638000 * 2 REDLMBYT /* DELIMITER BYTE */ 05639000 * CHAR(1), 1366 05640000 * 2 RERECORD /* ACTUAL RECORD */ 05641000 * CHAR(80); 1366 05642000 * RERECSZE=81; /* SIZE OF WORKAREA */ 05643000 L @15,@PC00015+8 1367 05644000 MVC RERECSZE(3,@15),@CF01437+1 1367 05645000 * RESUBPOL=0; /* SUBPOOL 0 */ 05646000 MVI RESUBPOL(@15),X'00' 1368 05647000 * RFY 1369 05648000 * (GPR00F, 1369 05649000 * GPR01P, 1369 05650000 * GPR14P, 1369 05651000 * GPR15F)RSTD; 1369 05652000 * GPR00F=RERECCOR; /* MOVE IN GETMAIN PARAMETERS */ 05653000 L @07,@PC00015+8 1370 05654000 L GPR00F,RERECCOR(,@07) 1370 05655000 * GEN(GETMAIN R,LV=(0)); /* GET CORE FOR WORKAREA */ 05656000 GETMAIN R,LV=(0) 05657000 * RERECPTR=GPR01P; /* INITIALIZE RECORD PTR */ 05658000 L @07,@PC00015 1372 05659000 ST GPR01P,RERECPTR(,@07) 1372 05660000 * RERECLEN=73; /* AND ITS LENGTH */ 05661000 L @07,@PC00015+4 1373 05662000 MVC RERECLEN(4,@07),@CF01438 1373 05663000 * RFY 1374 05664000 * (GPR00F, 1374 05665000 * GPR01P, 1374 05666000 * GPR14P, 1374 05667000 * GPR15F)UNRSTD; 1374 05668000 * IF INEOFBIT='1'B THEN /* END OF FILE REACHED? */ 05669000 TM INEOFBIT,B'10000000' 1375 05670000 BNO @RF01375 1375 05671000 * RETURN CODE(4); /* RETURN UNSUCCESSFUL */ 05672000 LA @15,4 1376 05673000 L @14,@SA00015 1376 05674000 LM @00,@12,@SA00015+8 1376 05675000 BR @14 1376 05676000 * DCBEODA=ADDR(REEODAD); /* SET UP EODAD ADDRESS */ 05677000 @RF01375 L @15,DCBPTR 1377 05678000 LA @14,DCBIOBAD+16(,@15) 1377 05679000 LA @07,REEODAD 1377 05680000 ST @07,@TF00001 1377 05681000 MVC DCBEODA(3,@14),@TF00001+1 1377 05682000 * DCBSYNA=ADDR(MFRESYNA); /* SET UP SYNAD RTN ADDRESS */ 05683000 LA @14,MFRESYNA 1378 05684000 ST @14,@TF00001 1378 05685000 MVC DCBSYNA+52(3,@15),@TF00001+1 1378 05686000 * REDLMBYT=' '; /* INSERT DELIMITER IN 1ST BYTE */ 05687000 L @15,@PC00015 1379 05688000 L @15,RERECPTR(,@15) 1379 05689000 MVI REDLMBYT(@15),C' ' 1379 05690000 * RFY 1380 05691000 * (GPR00P, 1380 05692000 * GPR01P, 1380 05693000 * GPR02P, 1380 05694000 * GPR14P, 1380 05695000 * GPR15P)RSTD; 1380 05696000 * GPR02P=ADDR(RERECORD); /* SET UP AREA ADDRESS */ 05697000 L @07,@PC00015 1381 05698000 L @07,RERECPTR(,@07) 1381 05699000 LA GPR02P,RERECORD(,@07) 1381 05700000 * GENERATE; 1382 05701000 READ INARDMAC,SF,INMEMLIB,(GPR02P),'S',MF=E 05702000 CHECK INARDMAC 05703000 * RFY 1383 05704000 * (GPR00P, 1383 05705000 * GPR01P, 1383 05706000 * GPR02P, 1383 05707000 * GPR14P, 1383 05708000 * GPR15P)UNRSTD; 1383 05709000 * IF INEOFBIT='1'B THEN /* END OF FILE REACHED? */ 05710000 TM INEOFBIT,B'10000000' 1384 05711000 BNO @RF01384 1384 05712000 * RETURN CODE(4); /* I/O ERROR */ 05713000 LA @15,4 1385 05714000 L @14,@SA00015 1385 05715000 LM @00,@12,@SA00015+8 1385 05716000 BR @14 1385 05717000 * ELSE /* RECORD READ */ 05718000 * RETURN CODE(0); /* RETURN SUCCESSFUL */ 05719000 @RF01384 SR @15,@15 1386 05720000 L @14,@SA00015 1386 05721000 LM @00,@12,@SA00015+8 1386 05722000 BR @14 1386 05723000 *REEODAD: 1387 05724000 * ; 1387 05725000 REEODAD DS 0H 1388 05726000 * INEOFBIT='1'B; /* INDICATE END OF FILE */ 05727000 OI INEOFBIT,B'10000000' 1388 05728000 * RETURN CODE(4); /* RETURN UNSUCCESSFUL */ 05729000 * 1389 05730000 LA @15,4 1389 05731000 L @14,@SA00015 1389 05732000 LM @00,@12,@SA00015+8 1389 05733000 BR @14 1389 05734000 * /*****************************************************************/ 05735000 * /* */ 05736000 * /* SYNAD ROUTINE */ 05737000 * /* */ 05738000 * /*****************************************************************/ 05739000 * 1390 05740000 *MFRESYNA: 1390 05741000 * PROCEDURE OPTIONS(NOSAVEAREA,NOSAVE); 1390 05742000 MFRESYNA DS 0H 1391 05743000 * DECLARE 1391 05744000 * RESAVARA /* SAVEAREA FOR REGS AT ENTRY */ 05745000 * CHAR(64)BDY(WORD), 1391 05746000 * REBUFPTR /* PTR TO SYNAD TEXT */ 05747000 * PTR(31), 1391 05748000 * REMESAGE /* SYNAD TEXT */ 05749000 * CHAR(128)BASED(REBUFPTR), 1391 05750000 * REOPISET /* OPERATOR INTERVENTION */ 05751000 * BIT(1)CONSTANT('0'B), 1391 05752000 * 1 RE304INO(2), /* VARIABLE TEXT LIST */ 05753000 * 2 RE304PRT /* PART NUMBER */ 05754000 * FIXED(15), 1391 05755000 * 2 RE304LEN /* LENGTH */ 05756000 * FIXED(15), 1391 05757000 * 2 RE304TXT /* VARIABLE TEXT */ 05758000 * CHAR(128); 1391 05759000 * 1391 05760000 * /*****************************************************************/ 05761000 * /* */ 05762000 * /* SAVE REGISTERS AND ISSUE SYNADF MACRO TO GET ERROR MESSAGE AND*/ 05763000 * /* ESTABLISH NEW SAVE AREA */ 05764000 * /* */ 05765000 * /*****************************************************************/ 05766000 * 1392 05767000 * GENERATE SETS(RESAVARA); 1392 05768000 STM 0,15,RESAVARA SAVE REGISTERS 05769000 SYNADAF ACSMETH=BPAM 05770000 * RFY 1393 05771000 * (GPR01P)RSTD; 1393 05772000 * REBUFPTR=GPR01P; /* SAVE PTR TO SYNAD TEXT */ 05773000 ST GPR01P,REBUFPTR 1394 05774000 * RFY 1395 05775000 * (GPR01P)UNRSTD; 1395 05776000 * RE304PRT(1)=LMPART22; /* PART # FOR THE SYNAD TEXT 1396 05777000 * FOLLOWS */ 05778000 MVC RE304PRT(2),@CH00602 1396 05779000 * RE304PRT(2)=0; /* VARIABLE TEXT */ 05780000 SR @15,@15 1397 05781000 STH @15,RE304PRT+132 1397 05782000 * RE304LEN(2)=LENGTH(REMESAGE); /* SYNAD TEXT LENGTH */ 05783000 MVC RE304LEN+132(2),@CH01448 1398 05784000 * RE304TXT(2)=REMESAGE; /* SYNAD TEXT */ 05785000 L @15,REBUFPTR 1399 05786000 MVC RE304TXT+132(128),REMESAGE(@15) 1399 05787000 * INVTXLST(1)=ADDR(RE304INO(1)); /* VARIABLE TEXT LIST */ 05788000 LA @15,RE304INO 1400 05789000 ST @15,INVTXLST 1400 05790000 * INVTXLST(2)=ADDR(RE304INO(2)); 1401 05791000 * 1401 05792000 LA @15,RE304INO+132 1401 05793000 ST @15,INVTXLST+4 1401 05794000 * /*****************************************************************/ 05795000 * /* */ 05796000 * /* ISSUE MESSAGE IRB304I */ 05797000 * /* */ 05798000 * /*****************************************************************/ 05799000 * 1402 05800000 * CALL INMSGMOD(MID304I,INVTXLST,0,0); 1402 05801000 MVC @AL00001(16),@AL01402 1402 05802000 LA @15,INVTXLST 1402 05803000 ST @15,@AL00001+4 1402 05804000 L @15,INMSGADR 1402 05805000 LA @01,@AL00001 1402 05806000 BALR @14,@15 1402 05807000 * INCOOPIC=REOPISET; /* OPTION SET */ 05808000 NI INCOOPIC,B'01111111' 1403 05809000 * INCOOPIV='1'B; /* REQUEST OPERATOR INTERVENTION */ 05810000 OI INCOOPIV,B'00000001' 1404 05811000 * INEOFBIT='1'B; /* INDICATE END OF FILE */ 05812000 OI INEOFBIT,B'10000000' 1405 05813000 * GEN REFS(RESAVARA); 1406 05814000 SYNADRLS 05815000 LM 0,15,RESAVARA 05816000 * RETURN; /* GO TO NEXT SOURCE */ 05817000 @EL00016 DS 0H 1407 05818000 @EF00016 DS 0H 1407 05819000 @ER00016 BR @14 1407 05820000 * END MFRESYNA; 1408 05821000 * END MFREADIO; 1409 05822000 @EL00015 DS 0H 1409 05823000 @EF00015 DS 0H 1409 05824000 @ER00015 LM @14,@12,@SA00015 1409 05825000 BR @14 1409 05826000 * 1410 05827000 */* PROCEDURE NAME = MFMERGE */ 05828000 */* */ 05829000 */* DESCRIPTIVE NAME = MERGE OPTIONS */ 05830000 */* */ 05831000 */* FUNCTION = THIS ROUTINE MERGES THE VALUES SET IN THE TEMPORARY */ 05832000 */* PMA AND COA WITH THOSE IN THE PERMANENT PMA AND COA. */ 05833000 */* */ 05834000 * 1410 05835000 *MFMERGE: 1410 05836000 * PROCEDURE(MEFORCE); 1410 05837000 MFMERGE STM @14,@12,12(@13) 1410 05838000 MVC @PC00017(4),0(@01) 1410 05839000 * DECLARE 1411 05840000 * MEFORCE /* FORCE MERGE BIT */ 05841000 * BIT(1), 1411 05842000 * V BIT(8), /* BIT */ 05843000 * X BIT(8), /* MASKING */ 05844000 * Z BIT(8), /* FOR MERGING */ 05845000 * M BIT(8), /* OPTION VALUES */ 05846000 * MEOPTSPF /* OPTION SPECIFIED INDICATION */ 05847000 * BIT(1)CONSTANT('0'B), 1411 05848000 * MECNTRL /* DEVICE TYPES CONTROL ELEMENT */ 05849000 * FIXED(8)CONSTANT(1), 1411 05850000 * MESTATUS /* DEVICES TYPES STATUS ELEMENT */ 05851000 * FIXED(8)CONSTANT(2); 1411 05852000 * 1411 05853000 * /*****************************************************************/ 05854000 * /* */ 05855000 * /* COMMON OPTION AREA MERGE. IT CONTAINS TRACE,CYCLE,SYSOUT, */ 05856000 * /* INTERVAL,REPORT,STOP,AND OPI OPTIONS VALUES */ 05857000 * /* */ 05858000 * /*****************************************************************/ 05859000 * 1412 05860000 * IF MEFORCE='0'B THEN /* DO NOT FORCE MERGE? */ 05861000 L @15,@PC00017 1412 05862000 TM MEFORCE(@15),B'10000000' 1412 05863000 BNZ @RF01412 1412 05864000 * DO I=1 TO MAXCOMM; /* DO FOR EVERY COA OPTION */ 05865000 LA @15,1 1413 05866000 ST @15,I 1413 05867000 @DL01413 DS 0H 1414 05868000 * IF(MFCOCTRL(I)^=MEOPTSPF)&(INCOCTRL(I)=MEOPTSPF)THEN/* IF NOT 05869000 * SPECIFIED IN PERMANENT */ 05870000 SLA @15,2 1414 05871000 L @14,@PC00001+8 1414 05872000 ST @15,@TF00001 1414 05873000 ALR @15,@14 1414 05874000 AL @15,@CF01528 1414 05875000 TM MFCOCTRL(@15),B'10000000' 1414 05876000 BZ @RF01414 1414 05877000 L @01,@TF00001 1414 05878000 LA @15,INCOCTRL-4(@01) 1414 05879000 TM 0(@15),B'10000000' 1414 05880000 BNZ @RF01414 1414 05881000 * /* BUT SET IN TEMPORARY */ 05882000 * MFCOOPTN(I)=INCOOPTN(I); /* MOVE IN OPTION VALUE */ 05883000 AL @14,@TF00001 1415 05884000 AL @14,@CF01528 1415 05885000 L @15,@TF00001 1415 05886000 LA @01,INCOOPTN-4(@15) 1415 05887000 MVC MFCOOPTN(4,@14),0(@01) 1415 05888000 * END; 1416 05889000 @RF01414 LA @15,1 1416 05890000 A @15,I 1416 05891000 ST @15,I 1416 05892000 CH @15,@CH00069 1416 05893000 BNH @DL01413 1416 05894000 * ELSE /* FORCE MERGING VALUES INTO */ 05895000 * DO I=1 TO MAXCOMM; /* PERMANENT CONTROL BLOCKS */ 05896000 B @RC01412 1417 05897000 @RF01412 LA @15,1 1417 05898000 ST @15,I 1417 05899000 @DL01417 DS 0H 1418 05900000 * IF INCOCTRL(I)=MEOPTSPF&(I-1)*(LENGTH(MFCOOPTN)/8)^=ADDR( 1418 05901000 * MFCOMEM)-ADDR(MFCOA)THEN/* THIS OPTION SPECIFIED AND NOT 05902000 * MEMBER OPTION? */ 05903000 LR @14,@15 1418 05904000 SLA @14,2 1418 05905000 LA @01,INCOCTRL-4(@14) 1418 05906000 TM 0(@01),B'10000000' 1418 05907000 BNZ @RF01418 1418 05908000 BCTR @15,0 1418 05909000 SLA @15,2 1418 05910000 L @07,@PC00001+8 1418 05911000 LA @06,MFCOMEM(,@07) 1418 05912000 SR @06,@07 1418 05913000 CR @15,@06 1418 05914000 BE @RF01418 1418 05915000 * MFCOOPTN(I)=INCOOPTN(I); /* MOVE IN VALUE */ 05916000 ALR @07,@14 1419 05917000 AL @07,@CF01528 1419 05918000 LA @15,INCOOPTN-4(@14) 1419 05919000 MVC MFCOOPTN(4,@07),0(@15) 1419 05920000 * END; 1420 05921000 * 1420 05922000 @RF01418 LA @15,1 1420 05923000 A @15,I 1420 05924000 ST @15,I 1420 05925000 CH @15,@CH00069 1420 05926000 BNH @DL01417 1420 05927000 * /*****************************************************************/ 05928000 * /* */ 05929000 * /* PROBLEM OPTION AREA MERGE. IT CONTAINS CPU,PAGING,WORKLOAD, */ 05930000 * /* CHANNEL AND DEVICE OPTIONS' VALUES. */ 05931000 * /* */ 05932000 * /*****************************************************************/ 05933000 * 1421 05934000 * IF MEFORCE='0'B THEN /* DO NOT FORCE MERGE? */ 05935000 @RC01412 L @15,@PC00017 1421 05936000 TM MEFORCE(@15),B'10000000' 1421 05937000 BNZ @RF01421 1421 05938000 * DO; /* YES */ 05939000 * V=MFMVDEV->MFPMDEVF(MECNTRL);/* INITIALIZE VARIABLE */ 05940000 L @15,@PC00001+4 1423 05941000 L @01,MFMVDEV(,@15) 1423 05942000 MVC V(1),MFPMDEVF(@01) 1423 05943000 * DO I=1 TO MFMVNUM; /* DO FOR EACH PMA */ 05944000 LA @15,1 1424 05945000 B @DE01424 1424 05946000 @DL01424 DS 0H 1425 05947000 * RFY 1425 05948000 * MFPMA BASED(MFMVADD(I)); 1425 05949000 * RFY 1426 05950000 * INPMA BASED(INMVADD(I)); 1426 05951000 * IF(I-1)*LENGTH(MFMVADD)=ADDR(MFMVDEV)-ADDR(MFMVOPT)THEN/* 05952000 * DEVICE PMA? */ 05953000 LR @14,@15 1427 05954000 BCTR @14,0 1427 05955000 SLA @14,2 1427 05956000 L @07,@PC00001+4 1427 05957000 LA @06,MFMVDEV(,@07) 1427 05958000 LA @05,MFMVOPT(,@07) 1427 05959000 SR @06,@05 1427 05960000 CR @14,@06 1427 05961000 BNE @RF01427 1427 05962000 * DO; /* SET DEVICE STATUS */ 05963000 * X=V&&INPMDEVF(MECNTRL);/* BEGIN SETTING UP A MASK */ 05964000 SLA @15,2 1429 05965000 L @14,INMVADD-4(@15) 1429 05966000 MVC X(1),V 1429 05967000 XC X(1),INPMDEVF(@14) 1429 05968000 * M=X&V; 1430 05969000 MVC M(1),X 1430 05970000 NC M(1),V 1430 05971000 * Z=M&INPMDEVF(MESTATUS);/* STATUS BITS TURNED ON */ 05972000 MVC Z(1),M 1431 05973000 NC Z(1),INPMDEVF+1(@14) 1431 05974000 * MFPMDEVF(MESTATUS)=Z|MFPMDEVF(MESTATUS); 1432 05975000 L @15,MFMVADD-4(@15,@07) 1432 05976000 OC MFPMDEVF+1(1,@15),Z 1432 05977000 * MFPMDEVF(MECNTRL)=MFPMDEVF(MECNTRL)&&M;/* OPTION SET */ 05978000 XC MFPMDEVF(1,@15),M 1433 05979000 * IF MFPMDEVF(MECNTRL)^=MFPMDEVC THEN/* ANY OPTIONS SET? */ 05980000 CLI MFPMDEVF(@15),X'FC' 1434 05981000 BE @RF01434 1434 05982000 * MFPMCON=MEOPTSPF; /* OPTION SET */ 05983000 NI MFPMCON(@15),B'01111111' 1435 05984000 * END; 1436 05985000 * ELSE /* ALL OTHER OPTION PMA'S */ 05986000 * IF(MFPMCON^=MEOPTSPF)&INPMCON=MEOPTSPF THEN/* OPTION 1437 05987000 * SPECIFIED? */ 05988000 B @RC01427 1437 05989000 @RF01427 L @15,I 1437 05990000 SLA @15,2 1437 05991000 L @14,@PC00001+4 1437 05992000 L @14,MFMVADD-4(@15,@14) 1437 05993000 TM MFPMCON(@14),B'10000000' 1437 05994000 BZ @RF01437 1437 05995000 L @15,INMVADD-4(@15) 1437 05996000 TM INPMCON(@15),B'10000000' 1437 05997000 BNZ @RF01437 1437 05998000 * DO; 1438 05999000 * MFPMOPT=INPMOPT; /* MOVE IN OPTION VALUE */ 06000000 MVC MFPMOPT(4,@14),INPMOPT(@15) 1439 06001000 * MFPMCON=MEOPTSPF; /* OPTION SET */ 06002000 NI MFPMCON(@14),B'01111111' 1440 06003000 * END; 1441 06004000 * END; 1442 06005000 @RF01437 DS 0H 1442 06006000 @RC01427 LA @15,1 1442 06007000 A @15,I 1442 06008000 @DE01424 ST @15,I 1442 06009000 L @14,@PC00001+4 1442 06010000 C @15,MFMVNUM(,@14) 1442 06011000 BNH @DL01424 1442 06012000 * END; 1443 06013000 * ELSE /* FORCE MERGING VALUES INTO */ 06014000 * DO; /* PERMANENT CONTROL BLOCKS */ 06015000 B @RC01421 1444 06016000 @RF01421 DS 0H 1445 06017000 * V=MFPMDEVC; /* INITIALIZE VARIABLE */ 06018000 MVI V,X'FC' 1445 06019000 * DO I=1 TO MFMVNUM; /* DO FOR EVERY PMA */ 06020000 LA @15,1 1446 06021000 B @DE01446 1446 06022000 @DL01446 DS 0H 1447 06023000 * RFY 1447 06024000 * MFPMA BASED(MFMVADD(I)); 1447 06025000 * RFY 1448 06026000 * INPMA BASED(INMVADD(I)); 1448 06027000 * IF(I-1)*LENGTH(MFMVADD)=ADDR(MFMVDEV)-ADDR(MFMVOPT)THEN/* 06028000 * DEVICE PMA? */ 06029000 LR @14,@15 1449 06030000 BCTR @14,0 1449 06031000 SLA @14,2 1449 06032000 L @07,@PC00001+4 1449 06033000 LA @06,MFMVDEV(,@07) 1449 06034000 LA @05,MFMVOPT(,@07) 1449 06035000 SR @06,@05 1449 06036000 CR @14,@06 1449 06037000 BNE @RF01449 1449 06038000 * DO; 1450 06039000 * MFPMDEVF(MESTATUS)=MFPMDEVF(MESTATUS)&INPMDEVF(MECNTRL); 06040000 SLA @15,2 1451 06041000 L @14,MFMVADD-4(@15,@07) 1451 06042000 L @15,INMVADD-4(@15) 1451 06043000 NC MFPMDEVF+1(1,@14),INPMDEVF(@15) 1451 06044000 * X=INPMDEVF(MECNTRL)&&V; 1452 06045000 MVC X(1),INPMDEVF(@15) 1452 06046000 XC X(1),V 1452 06047000 * Z=X&INPMDEVF(MESTATUS); 1453 06048000 MVC Z(1),X 1453 06049000 NC Z(1),INPMDEVF+1(@15) 1453 06050000 * MFPMDEVF(MESTATUS)=MFPMDEVF(MESTATUS)|Z; 1454 06051000 OC MFPMDEVF+1(1,@14),Z 1454 06052000 * MFPMDEVF(MECNTRL)=INPMDEVF(MECNTRL)&MFPMDEVF(MECNTRL); 06053000 NC MFPMDEVF(1,@14),INPMDEVF(@15) 1455 06054000 * IF MFPMDEVF(MECNTRL)^=MFPMDEVC THEN/* ANY OPTIONS SET? */ 06055000 CLI MFPMDEVF(@14),X'FC' 1456 06056000 BE @RF01456 1456 06057000 * MFPMCON=MEOPTSPF; /* OPTION SET */ 06058000 NI MFPMCON(@14),B'01111111' 1457 06059000 * END; 1458 06060000 * ELSE /* NOT DEVICE ENTRY */ 06061000 * IF INPMCON=MEOPTSPF THEN/* OPTION SPECIFIED? */ 06062000 B @RC01449 1459 06063000 @RF01449 L @15,I 1459 06064000 SLA @15,2 1459 06065000 L @14,INMVADD-4(@15) 1459 06066000 TM INPMCON(@14),B'10000000' 1459 06067000 BNZ @RF01459 1459 06068000 * DO; 1460 06069000 * MFPMOPT=INPMOPT; /* MOVE IN VALUE */ 06070000 L @07,@PC00001+4 1461 06071000 L @15,MFMVADD-4(@15,@07) 1461 06072000 MVC MFPMOPT(4,@15),INPMOPT(@14) 1461 06073000 * MFPMCON=MEOPTSPF; /* OPTION SET */ 06074000 NI MFPMCON(@15),B'01111111' 1462 06075000 * END; 1463 06076000 * END; 1464 06077000 @RF01459 DS 0H 1464 06078000 @RC01449 LA @15,1 1464 06079000 A @15,I 1464 06080000 @DE01446 ST @15,I 1464 06081000 L @14,@PC00001+4 1464 06082000 C @15,MFMVNUM(,@14) 1464 06083000 BNH @DL01446 1464 06084000 * END; 1465 06085000 * RFY 1466 06086000 * INPMA; 1466 06087000 * RFY 1467 06088000 * MFPMA; 1467 06089000 * END MFMERGE; 1468 06090000 @EL00017 DS 0H 1468 06091000 @EF00017 DS 0H 1468 06092000 @ER00017 LM @14,@12,12(@13) 1468 06093000 BR @14 1468 06094000 * 1469 06095000 */* PROCEDURE NAME = MFVALCHK */ 06096000 */* */ 06097000 */* DESCRIPTIVE NAME = OPTIONS VALIDITY CHECK */ 06098000 */* */ 06099000 */* FUNCTION = CERTAIN COMBINATIONS OF OPTION VALUES CONFLICT. THIS */ 06100000 */* ROUTINES CHECKS THOSE OPTION S VALUES. */ 06101000 */* */ 06102000 * 1469 06103000 *MFVALCHK: 1469 06104000 * PROCEDURE; 1469 06105000 MFVALCHK STM @14,@12,@SA00018 1469 06106000 * DECLARE 1470 06107000 * VAVALCHK /* VALIDITY CHECK ERROR BIT */ 06108000 * BIT(1), 1470 06109000 * VADEFER /* REPORT VALUE - DEFER */ 06110000 * BIT(2)CONSTANT('01'B), 1470 06111000 * VARELTME /* REPORT VALUE - REALTIME */ 06112000 * BIT(2)CONSTANT('10'B), 1470 06113000 * 1 VAVTXLST, /* VARIABLE TEXT LIST */ 06114000 * 2 VA301INO /* MSG PART NUMBER */ 06115000 * FIXED(15), 1470 06116000 * 2 VA301LEN /* LENGTH OF PART */ 06117000 * FIXED(15), 1470 06118000 * VANOREP /* NOREPORT VALUE */ 06119000 * BIT(2)CONSTANT('00'B), 1470 06120000 * VASTOP /* STOP */ 06121000 * BIT(1)CONSTANT('0'B), 1470 06122000 * VAMINTES /* STOP TIME IN MINUTES */ 06123000 * BIT(1)CONSTANT('0'B), 1470 06124000 * VANOTCE /* NOTRACE VALUE */ 06125000 * BIT(1)CONSTANT('0'B); 1470 06126000 * VAVALCHK='0'B; /* INITIALIZE ERROR BIT */ 06127000 * 1471 06128000 NI VAVALCHK,B'01111111' 1471 06129000 * /*****************************************************************/ 06130000 * /* */ 06131000 * /* REPORT/STOP VALIDITY CHECK. IF REPORT OPTION IS SET TO DEFER */ 06132000 * /* AND NOSTOP IS REQUESTED, VALIDITY CHECK ERROR RESULTS */ 06133000 * /* */ 06134000 * /*****************************************************************/ 06135000 * 1472 06136000 * IF MFCOREPV=VADEFER&MFCOSTPS^=VASTOP THEN 1472 06137000 L @15,@PC00001+8 1472 06138000 TM MFCOREPV(@15),B'00000001' 1472 06139000 BNO @RF01472 1472 06140000 TM MFCOREPV(@15),B'00000010' 1472 06141000 BNZ @RF01472 1472 06142000 TM MFCOSTPS(@15),B'01000000' 1472 06143000 BZ @RF01472 1472 06144000 * DO; 1473 06145000 * MFCOSTPV=MFCOINTV; /* SET STOP = INTERVAL */ 06146000 MVC MFCOSTPV(2,@15),MFCOINTV(@15) 1474 06147000 * MFCOSTPS=VASTOP; /* STOP SPECIFIED */ 06148000 * MFCOSTPU=VAMINTES; /* STOP TIME IN MIN. */ 06149000 NI MFCOSTPS(@15),B'10011111' 1476 06150000 * MFCOOPIV='1'B; /* REQUEST OPERATOR INTERVENTION */ 06151000 OI MFCOOPIV(@15),B'00000001' 1477 06152000 * VAVALCHK='1'B; /* VALIDITY CHECK ERROR */ 06153000 OI VAVALCHK,B'10000000' 1478 06154000 * END; 1479 06155000 * 1479 06156000 * /*****************************************************************/ 06157000 * /* */ 06158000 * /* REPORT/TRACE VALIDITY CHECK. 'NOREPORT' AND 'NOTRACE' */ 06159000 * /* SPECIFIED TOGETHER AS MF/1 INPUT RESULTS IN VALIDITY CHECK */ 06160000 * /* ERROR */ 06161000 * /* */ 06162000 * /*****************************************************************/ 06163000 * 1480 06164000 * IF MFCOREPV=VANOREP&MFCOTCEV=VANOTCE THEN 1480 06165000 @RF01472 L @15,@PC00001+8 1480 06166000 TM MFCOREPV(@15),B'00000011' 1480 06167000 BNZ @RF01480 1480 06168000 TM MFCOTCEV(@15),B'00000001' 1480 06169000 BNZ @RF01480 1480 06170000 * DO; 1481 06171000 * MFCOREPV=VADEFER; /* SET REPORT = DEFER */ 06172000 NI MFCOREPV(@15),B'11111101' 1482 06173000 OI MFCOREPV(@15),B'00000001' 1482 06174000 * MFCOOPIV='1'B; /* REQUEST OPERATOR INTERVENTION */ 06175000 OI MFCOOPIV(@15),B'00000001' 1483 06176000 * VAVALCHK='1'B; /* VALIDITY CHECK ERROR */ 06177000 OI VAVALCHK,B'10000000' 1484 06178000 * END; 1485 06179000 * 1485 06180000 * /*****************************************************************/ 06181000 * /* */ 06182000 * /* STOP/INTERVAL VALIDITY CHECK. IF STOP VALUE IS LESS THAN THE */ 06183000 * /* INTERVAL VALUE A VALIDITY CHECK ERROR RESULTS. */ 06184000 * /* */ 06185000 * /*****************************************************************/ 06186000 * 1486 06187000 * IF MFCOSTPS=VASTOP&MFCOSTPU=VAMINTES&MFCOSTPV::= BLANK