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