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

Reply via email to