Sorry, for some reason I read LAY as LARL. OP: please show the listing lines for SAVE_FILES, the LA and the LAY, specifically the offsets and the generated code. .
-- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 ________________________________________ From: IBM Mainframe Assembler List [[email protected]] on behalf of Binyamin Dissen [[email protected]] Sent: Monday, September 5, 2022 12:08 PM To: [email protected] Subject: Re: Missing ASMA034E message On Mon, 5 Sep 2022 15:42:12 +0000 Seymour J Metz <[email protected]> wrote: :>I don't understand. SAVE_FILES is in #PRGAREA , not in GETDIRD; why didn't LAY R14,SAVE_FILES fail? Because USING (#PRGAREA,#E_RENT),R13 is still in effect. :>________________________________________ :>From: IBM Mainframe Assembler List [[email protected]] on behalf of John Gateley [[email protected]] :>Sent: Monday, September 5, 2022 10:37 AM :>To: [email protected] :>Subject: Re: Missing ASMA034E message :> :>I forgot all leading spaces would be removed. //// denotes leading spaces :> :> TITLE 'GETDIRD - Read file details from the SCHEMA' :>//// SYSSTATE ARCHLVL=2 :>* Change branch link to branch save, ensure clean 31 bit addresses :>BAL OPSYN BAS :>BALR OPSYN BASR :>* :>GETDIRD START 0 :>GETDIRD AMODE 31 :>GETDIRD RMODE 24 :>* :>//// YREGS :>//// BRUL BEGIN :>@DATA LOCTR , :>//// DC CL10' GETDIRD' :>//// DC CL20'2022-08-31 15:38:37' :>//// DS 0F :>@CODE LOCTR , :>BEGIN DS 0H :>//// STM R14,R12,12(R13) * save registers in caller :>//// LARL R12,GETDIRD * get address of entry point :>//// USING (GETDIRD,BEGIN),R12 :>//// LR R9,R1 save parameter address :>//// L R2,#RENTSIZ :>//// STORAGE OBTAIN,LENGTH=(R2),LOC=31 :>//// ST R13,4(R1) chain save areas :>//// ST R1,8(R13) :>//// LR R13,R2 :>//// USING (#PRGAREA,#E_RENT),R13 :>//// XC R_C,R_C :>//// XC MY_PARM(LEN_MY_PARM),MY_PARM :>//// BRAS R14,MAIN_PART * go to main code :>//// BRU #AFT_RENT * go to clean up :>//// DS 0F :>#PRGAREA DSECT * DSECT overlays getmained :>#SAVAREA DS 18F :>#SAV_REX DS 4F :>#SEG_SAV DS 50F * segment save area :>#BAS_SAV DS 50F * segment base reg save :>R_C DS F :>DOUB_WORD DS D :>MY_PARM DC 24F'0' * define call parm area :>END_MY_PARM EQU * :>LEN_MY_PARM EQU *-MY_PARM :>SOME_PADDING DS 633CL1 :>SAVE_DETS DS 10CL80 :>MAX_INDENT EQU 20 :>SAVE_INDENT DS (MAX_INDENT)CL10 :>MAX_FIELDS EQU 2000 :>SAVE_FIELDS DS (MAX_FIELDS)CL116 :>MAX_FILES EQU 2000 :>SAVE_FILES DS (MAX_FILES)CL8 :>#PRGAREA DSECT :>#E_RENT EQU * :>* :>GETDIRD CSECT :>#AFT_RENT DS 0H * start of goback code :>//// L R0,#RENTSIZ :>//// LR R1,R13 :>//// L R2,R_C :>//// L R13,4(R13) :>//// ST R2,16(R13) :>//// STORAGE RELEASE,LENGTH=(R0),ADDR=(R1) :>//// LM R14,R12,12(R13) * load callers + return code :>//// BSM 0,R14 * return to caller :>* :>MAIN_PART ST R14,#SEG_SAV+(4*0) save return address :>//// ST R11,#BAS_SAV+(4*0) save prev code base :>//// BASR R11,0 set code base address :>//// USING (*,#END_CBASE_1),R11 :>//// LA R14,SAVE_FILES incorrect :>//// LAY R14,SAVE_FILES correct :>//// L R14,#SEG_SAV+(4*0) load return address :>#END_CBASE_1 DS 0H :>//// L R11,#BAS_SAV+(4*0) restore segment base :>//// DROP R11 :>//// BR R14 :>* :>GETDIRD CSECT :>* :>@DATA LOCTR , :>##STATIC DS 0D :>#RENTSIZ DC AL4(#E_RENT-#PRGAREA) :>GETDIRD CSECT :>//// DS 0D :>//// LTORG :>##STATIC_E EQU * :>@CODE LOCTR , :>GETDIRD CSECT :>//// LTORG :>GETDIRD CSECT :>//// END -- Binyamin Dissen <[email protected]> https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.dissensoftware.com%2F&data=05%7C01%7Csmetz3%40gmu.edu%7Cdc6e09dc35de439577d408da8f58dcec%7C9e857255df574c47a0c00546460380cb%7C0%7C0%7C637979909067731994%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=IGidnll0DzkJSMmQZy9eKEsHiKyb137USZNlRnzCcdg%3D&reserved=0 Director, Dissen Software, Bar & Grill - Israel
