You have to be aware regardless.

--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Assembler List [ASSEMBLER-LIST@LISTSERV.UGA.EDU] on behalf 
of Joseph Reichman [reichman...@gmail.com]
Sent: Monday, January 3, 2022 2:06 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Determining a group item

I’m just trying to generate the 4 fields need
To define a variable to Rexx when using assembler
1) length of fetch value
2) address of the name of the variable
 3) length of variable name
4) address of the fetch buffer

I 100 % agree with Charles that using the adata is better

It’s just not practical

I would have to be aware every time one of these copybooks changes re-assemble 
it to get adata

Nobody is going to tell me so

Everyday I would have to check endeavor to see if they copybooks were changed

Or else I would have to read production programs that use the copybooks

> On Jan 3, 2022, at 1:06 PM, Charles Mills <charl...@mcn.org> wrote:
>
> Well, could be. I am not always totally adept at deducing Joseph's 
> requirements.
>
> In any event what you suggest would be a great way of doing things.
>
> I read what Joseph writes below as saying he wants something like
>
> LASTNAME_Address = 1
> LASTNAME_Length = 16
>
> Not sure what he means by address (offset?) and length of name as opposed to 
> address and length of value.
>
> Charles
>
>
> -----Original Message-----
> From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] 
> On Behalf Of Martin Trübner
> Sent: Monday, January 3, 2022 9:05 AM
> To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
> Subject: Re: Determining a group item
>
> Charles,
>
>
> the way I understand Joseph is that he wants
>
>   CALL POPULATE_A_RECORD
>
> and then have variables LASTNAME FRSTNAME ZIPCODE and BIRTHYR populates
> with valid data.
>
>
> Best
>
>
> Martin
>
> -----Original Message-----
> From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] 
> On Behalf Of Joseph Reichman
> Sent: Sunday, January 2, 2022 7:07 AM
> To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
> Subject: Re: Determining a group item
>
> My initial thoughts were having the copybook preceded my AREAD
> Bottom line with AREAD I get the entire 80 byte assembler sysin
> Many have said I can’t do this way
> I may give it a try
>
> I need to generate 4 fields for rexx
>
> 1) address of the name
>  2) length of the name
>  3) address of the value
>  4) length of the value
>
>
>
>>> On Jan 2, 2022, at 8:16 AM, Paul Gilmartin 
>>> <00000014e0e4a59b-dmarc-requ...@listserv.uga.edu> wrote:
>>>
>>> On Jan 2, 2022, at 01:15:38, Martin Trübner wrote:
>>>    ...
>>> For the record: My HLASM debugger eats source code to support 
>>> source-debugging.
>>>
>> Does it grok SYSIN and SYSLIB in z/FS files?
>>
>> -- gil
>
> The DCDS record has all the information you need. Should be no big deal
> to code the ADEXIT to spit out information that can then be used by a
> REXX program to populate the variables.
>
> I can only guess for a stand-alone program- but there is no big difference.
>
>
> Martin
>
>
>
>> Am 03.01.22 um 15:50 schrieb Charles Mills:
>> There is an OOP concept called an accessor or getter. I am not finding a 
>> succinct definition on the Web but perhaps you can.
>>
>> Anyway, as an alternative to generating the four fields you describe below, 
>> you might consider generating accessor routines. (This is on the output side 
>> of things and independent of AREAD, ADATA or SYSPRINT input.)
>>
>> Assume the following is the record to be accessed from Rexx:
>>
>> CLIENT   DSECT
>> LASTNAME DS    CL16
>> FRSTNAME DS    CL12
>> ZIPCODE  DS    F
>> BIRTHYR  DS    H
>>
>> The program would return the following Rexx code (untested):
>>
>> LASTNAME_Get: Return SubStr(Arg(1), 1, 16)
>> FRSTNAME_Get: Return SubStr(Arg(1), 17, 12)
>> ZIPCODE_Get: Return C2D(SubStr(Arg(1), 29, 4))
>> BIRTHYR_Get: Return C2D(SubStr(Arg(1), 33, 2))
>>
>> Now your Rexx application programmer could code lines like the following 
>> (assuming CLIENT_Rec contained a CLIENT record):
>>
>> Say "Client" LASTNAME_Get(CLIENT_Rec) "was born in" BIRTHYR_Get(CLIENT_Rec)
>>
>> Charles
>>

Reply via email to