Hi Jonathan
I will try to find out how to raise a support case, in the meantime this is as
short as I can make it.
John
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