Hello,
Thru the IBM Mainframe list I have been able to get the assembler to accept the
following as valid:
VARNAM SETC 'P'.'I'
XVAL SETC '(VARNAM)'
XVAL is defined as LCLC
This statement:
MNOTE 'VARNAM=VARNAM'
results in the following in the assembly listing:
+VARNAM=P1
so
You didn't set or define variable P1. Message ASMA300E tells you that variable
P1 is not set (notice the TESTM/P1)
Regards, Jon.
From: Hardee, Chuck chuck.har...@thermofisher.com
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Sent: Sun, April 1, 2012 10:07:23 AM
Subject:
I don't think you can dynamically construct a variable name and then expect the
assembler to interpret it as a variable name.
I'm still guessing at what you are trying to achieve, but consider this,
assuming you have P1=,P2=,...P23=,P24= :
LCLC PA(24) Define array with 24
Thanks to a previous post for a question I posted on IBM-Main, this code does,
in fact, define and use a dynamically constructed variabl name:
PREFIX SETC 'ETAOIN'
INFIX0 SETC 'ALFRED'
INFIX1 SETC 'PRUFROCK'
SUFFIX SETC 'SHRDLU'
SWITCHID SETC 'PREFIX'.'INFIX0'.'INFIX1'.'SUFFIX'
LCLB
Earler today, I responded to orginal question on the IBM-MAIN list which
was this:
I am in the process of doing some work in a macro written years ago.
The problem I am faced with is that the parameter list is something like
the following:
LABEL MACNAME P1=X,P2=Y,P3=Z,... Where the
We've already moved the OP once.
I am happy to have further discussion of his problem stay here on the
ASSEMBLER-LIST, but I am not yet clear what exactly that problem is.
He now presumably knows how to construct compound' set-symbol
identifiers, as in
|atomic0 setc 'H2'
|atomic1 setc 'O'
This is a bug in HLASM that IBM refuses to fix. Actually, they did agree to fix
it but wanted money to do so. A performance improvement in macro processing
broke the ability to use created set symbols to reference macro parameters a
long time ago. Now it is a feature. I call it broken as
Several posters have mentioned the correct solution (which in your case
isn't a solution); you can't create the name of a positional or keyword
parameter, nor the name of a HLASM system variable symbol.,
The reason is that HLASM compiles those names into a special pre-defined
dictionary during