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 >>