%IGGMODUL: 03000000 MACRO KEYS(NOPR,MNAME,BASE2);/*GENERATES OUTER PROC STMTS*/ 06000037 /*AS MODULE HEADERS */ 06050037 DCL IGGGVCCT CHAR EXT; /*OUTER-INNER PROC CTRL VAR */ 06100037 DCL IGGBASE2 CHAR EXT; /* BASE REG 2 VARIABLE @ZA29164*/ 06150037 DCL IGGMODID CHAR EXT; /*MODULE ID @Y30SSPJ*/ 06200037 DCL (MODNAME,RID1,RID2,CVAL) CHAR; /*@Y30SSPJ*/ 06250037 DCL (NUMID1,NUMID2,NVAL) FIXED; /*@Y30SSPJ*/ 06300037 DCL (DEFTY,UNDEF) CHAR; /* @ZA29164*/ 06350037 DEFTY = 'T'''; /* @ZA29164*/ 06400037 UNDEF = 'U'; /* @ZA29164*/ 06450037 IGGBASE2 = BASE2(1); /* SET SECOND BASE REG @ZA29164*/ 06500037 MODNAME = MNAME(1); /* SET MODULE NAME @Y30SSPJ*/ 12200037 IGGMODID=QUOTE(MODNAME(7:8));/* SET MODULE ID @Y30SSPJ*/ 12250037 RID1 = MODNAME(7:7); /* 1ST BYTE MODID @Y30SSPJ*/ 12300037 RID2 = MODNAME(8:8); /* 2ND BYTE MODID @Y30SSPJ*/ 12350037 NUMID1=INDEX(EBCDIC,RID1);/*NUMERIC REPRESENTATION @Y30SSPJ*/ 12400037 NUMID2=INDEX(EBCDIC,RID2);/*NUMERIC REPRESENTATION @Y30SSPJ*/ 12450037 NUMID1=16777216*(NUMID1-128);/*POSITIVE ID1 IN BYTE 1 @Y30SSPJ*/ 12500037 NUMID2=(65536*NUMID2)-1; /*SET ID2 IN NEXT BYTE @Y30SSPJ*/ 12550037 NVAL=-2147483647+NUMID1+NUMID2; /*SUM ID1, ID2, @Y30SSPJ*/ 12600037 CVAL = CHAR(NVAL); /*CONVERT TO CHAR STRING @Y30SSPJ*/ 12650037 IF NOPR(1) ^= '*' THEN /* SHORT FORM MACRO @Y30SSPJ*/ 12700037 DO; /* YES-SHORT FORM @Y30SSPJ*/ 12750037 IF IGGBASE2 ^= '' THEN/* BASE 2 SPECIFIED? @ZA29164*/ 12800037 DO; /* YES @ZA29164*/ 12850037 ANS('GEN;') SKIP COL(10);/* @ZA29164*/ 12900037 ANS('MACRO') SKIP COL(10);/* @ZA29164*/ 12950037 ANS('RLDSBREG &NAME') SKIP COL(10);/* @ZA29164*/ 13000037 ANS('AIF ('||DEFTY||'&NAME NE '|| 13050037 QUOTE(UNDEF)||').SKIP') NORESCAN SKIP COL(10); 13100037 ANS('LA '||IGGBASE2||',4095(0,12)') COL(10); 13150037 ANS('RELOAD BASE REG 2') COL(40);/* @ZA29164*/ 13200037 ANS('.SKIP MEND') COL(1);/* @ZA29164*/ 13250037 ANS('@ENDGEN;') COL(2); /* @ZA29164*/ 13300037 END; /* @ZA29164*/ 13350037 ELSE; /* @ZA29164*/ 13400037 ANS (MNAME(1) || ': PROC OPTIONS') SKIP COL(2); 15000037 ANS ('(REENTRANT,NOSAVEAREA,NOSAVE,NOCODEREG,NODATAREG, 18000037 ID);') SKIP COL(18); 21000000 IGGGVCCT = '1'; /*INDICATE OUTER PROC DEFIND*/ 24000037 ANS ('DECLARE IGGSEGBR REG(12) PTR(31) RSTD;') 27000037 SKIP COL(12); /* @Y30SSDW*/ 27050037 ANS ('/* MODULE BASE REGISTER */') COL(41); 30000037 IF IGGBASE2 ^= '' THEN/*BASE 2 REG SPECIFIED? @ZA29164*/ 30006037 DO; /* YES @ZA29164*/ 30011037 ANS('DECLARE IGGSEGB2 REG('||IGGBASE2||')PTR(31)RSTD;') 30016037 SKIP COL(12); /* @ZA29164*/ 30021037 ANS('/* MODULE BASE 2 REGISTER */')COL(41);/*@ZA29164*/ 30026037 END; /* @ZA29164*/ 30031037 ELSE; /* @ZA29164*/ 30036037 END; /*@Y30SSPJ*/ 30050037 ELSE; /*@Y30SSPJ*/ 30100037 ANS ('/* NUMERIC MODULE ID VALUE USED FOR PROBLEM ' || 30150037 'DETERMINATION */') SKIP COL(12); /*@Y30SSPJ*/ 30200037 ANS ('DECLARE IGGSEGID FIXED(31) CONSTANT(-' || CVAL || ');') 30250037 SKIP COL(12); /*@Y30SSDW*/ 30300037 ANS ('/* MODULE ID VALUE */') COL(56); /*@Y30SSPJ*/ 30350037 ANS ('@EJECT ASSEMBLE;') SKIP COL(2); /*@ZA29164*/ 30400037 % END ; 30450037