hn McKwn wrote >What, exactly is YTOKEN. You said "The Macro statemnents are genereated by >a program. The program generates a TOKEN ..." Sounds like program #1 >creates program #2 and program #2 contains the SRVRCONN macros which are >assembled after program #1 finishes (reminds me of an NCP gen, sort of). If >so, instead of program #1 outputting > > SRVRCONN SRVRCONN CITI_TO_QSTB,YTOKEN,A0000203 > >it needs to output: > > SRVRCONN CITI_TO_QSTB,X'2E47B000',A0000203 > >
YTOKEN is a 4Byte Hex Variable whoes value changes whith each invocation of the macro. PROGRAM 1 Generates the SRVRCONN Macros. These are then used as input to the Assembler. the value X'2E47B000' was only an example of what YTOKEN could contain. It os not a Constant value, its value changes for each invocation of the macro. I cant move any values into the macro expansion, because the Macro hasnt been expanded by the Assembler. Paul D'Angelo ---------- Original Message ---------- From: John McKown <[email protected]> To: [email protected] Subject: Re: Question About storing a Value in a Macro Date: Sun, 21 Jul 2013 16:42:40 -0500 What, exactly is YTOKEN. You said "The Macro statemnents are genereated by a program. The program generates a TOKEN ..." Sounds like program #1 creates program #2 and program #2 contains the SRVRCONN macros which are assembled after program #1 finishes (reminds me of an NCP gen, sort of). If so, instead of program #1 outputting SRVRCONN SRVRCONN CITI_TO_QSTB,YTOKEN,A0000203 it needs to output: SRVRCONN CITI_TO_QSTB,X'2E47B000',A0000203 which would then expand into what you indicated that you need. I don't have your program #1, of course, but assume at some point the value x'2E47B000' resides in program #1's data area in the 4 byte area labelled TOKEN. Instead of moving the value C'TOKEN' into the output area, you need to convert the hex value contained in the TOKEN area into a hexadecimal character constant. There is the old way and the new way. The old way is basically: TOKEN DS XL4 TOKEN HTOKEN DS XL9 HEX TOKEN TOHEX DC C'0123456789ABCDEF' .. UNPK HTOKEN(9),TOKEN(5) UNPACK TOKEN TR HTOKEN(8),TOHEX-C'0' Where the code in program #1 now does something like: MVC TOKEN_OUTPUT_AREA(6),=CL6'YTOKEN' You need something like: MVC TOKEN_OUTPUT_AREA(2),=CL2'X''' THAT IS 3 TICK MARKS IN A ROW MVC TOKEN_OUTPUT_AREA+2(8),HTOKEN MOVE IN HEX VALUE OF TOKEN MVC TOKEN_OUTPUT_AREA+10,C'''' THAT IS 4 TICK MARKS IN A ROW If someone knows an easier way, I would love to learn it. To me, the above is simple and well known. There is another way, using the TROT, but that I consider it to be a bother. Too much setup, and a problem if ETF-2 (Extended Translate Facility 2) is not available on the hardware. OK, It's on all the current hardware. But nuff said from me. On Sun, Jul 21, 2013 at 3:47 PM, [email protected] <[email protected]> wrote: > I have simple Macro with three positional parameters: > SRVRCONN &C,&T,&G > > The Macro generation is as follows: > .A020 ANOP > DC CL20'&C' .Name > DC AL4(&T) .Generated Token > DC A(&G-DSSCNTL) .Offset IP List Address > DC A(#&G) .Name Count > DC CL8'&G' .Host Name > * > > The Macro statemnents are genereated by a program. The program generates a > TOKEN and its generated value is to be stored in the macro expansion. > After this program generates the macro statements the output is assembled. > > In the Assembly, the macro expands as follows: > SRVRCONN CITI_TO_QSTB,YTOKEN,A0000203 > DC CL20'CITI_TO_QSTB' .Name > DC AL4(YTOKEN) .Gene > > DC A(A0000203-DSSCNTL) .Offs > DC A(#A0000203) .Name > DC CL8'A0000203' .Host > > > My question concerns the "YTOKEN" parameter. > I would Like to Store the "value" of YTOKEN and not YTOKEN itself, > as its not defined in the final assembly. Hence an error is generated > YTOKEN not defined. > > For example If YTOKEN contained a value of 2E47B000, I wanted the macro > expansion to be: > SRVRCONN CITI_TO_QSTB,YTOKEN,A0000203 > DC CL20'CITI_TO_QSTB' .Name > DC AL4(2E47B000) .Gene > DC A(A0000203-DSSCNTL) .Offs > DC A(#A0000203) . > DC CL8'A0000203' > > Can someone suggest How I can get the Value of the variable YTOKEN stored > as an AL4(xxxxxxxx) or XL4(xxxxxxxx) in the Macro Expansion, and not an > AL4(YTOKEN)... > > Paul > ----------------------------------- > -- This is a test of the Emergency Broadcast System. If this had been an actual emergency, do you really think we'd stick around to tell you? Maranatha! <>< John McKown
