//jobname JOB (ACCT#),CLASS=x,MSGCLASS=x,NOTIFY=userid //A EXEC PGM=IEV90,PARM=OBJECT,REGION=2000K //SYSIN DD * * DC C'<< CSVLLAIX1 : LLA Fetch Installation Exit >>' * DC C' Version ' *VERSION DC CL6'v0r0m0' * DC C' ) _ Kimu // Compiled Date : &SYSDATE _ &SYSTIME ' * PRINT NOGEN * --- Start of Process -------------------------------------------- CSVLLIX1 CSECT CSVLLIX1 AMODE 31 CSVLLIX1 RMODE ANY * R03 : Base Reg * R04 : Reentrant Area Base Reg * R05 : LLP1 Base Reg USING *,R15 MODID STM R14,R12,12(R13) Save entry registers. LR R03,R15 Initialize code register. DROP R15 Drop temporary addressability. USING CSVLLIX1,R03 Establish R8 as code register. * Save LLP1 Argument Address LR R05,R01 USING LLP1,R05 Addressability to LLP1. * For Re-Entrant Process GETMAIN RC,LV=WTOLEN LR R04,R01 R04 <- Dynamic Stor. Base * setup wto message LH R01,=AL2(WTOLEN) STH R01,0(R04) XC 2(2,R04),2(R04) * if obtain a copy of the module from dasd * CLC LLP1PROV(4),=CL4'PGMF' * BE BYE * search dataset name LA R06,SRCHLEN XR R07,R07 SRDA R06,32 D R06,=F'44' <- R07 : NUM OF DSN LA R06,SRCHDSN <- R06 : DSN OFFSET LOP01 EQU * CLC 0(44,R06),LLP1DSN BNE LOP01X * write to operator MVC 04(80,R04),MSGTEXT MVC 13(04,R04),LLP1PROV MVC 22(08,R04),LLP1PDS2 MVC 36(44,R04),LLP1DSN LR R01,R04 SVC 35 * WTO MESSAGE * --- STAGING --- * LA R15,#RCIX1_OVERRIDE * LA R0,#RSIX1_TRIGGER B BYE * LOP01X EQU * LA R06,44(R06) BCT R07,LOP01 BYE EQU * * --- DEFAULT --- FREEMAIN RC,LV=WTOLEN,A=(R04) LA R15,#RCIX1_DEFAULT Initialize return code. LA R0,#RSIX1_DEFAULT Initialize reason code. * --- STAGING --- * LA R15,#RCIX1_OVERRIDE * LA R0,#RSIX1_TRIGGER EXIT EQU * L R14,12(,R13) Restore the return address. LM R1,R12,24(R13) Restore others except R15 and R0 BR R14 Return to the caller. * SRCHDSN DS 0CL44 DC CL44'SYS1.LINKLIB' * DC CL44'DDMSL.V1R2M1.LOADLIB' * DC CL44'OS.VLFTEST.LOADLIB' * DC CL44'SYS2.LINKLIB' * DC CL44'SYS1.MASKLIB' SRCHLEN EQU *-SRCHDSN MSGTEXT DS 0CL80 MSGID DC CL08'-LLIX100' DC CL01' ' DC CL04' ' DC CL01' ' DC CL05'MEM:' DC CL08' ' DC CL01' ' DC CL04'DSN:' DC CL44' ' DC CL12' ' * --- Dynamic Area --- REENTA DS 0F SAVEAREA DS 18F * WTOAREA DS 0F DC AL2(WTOLEN) DC B'0000000000000000' MESSAGE DS CL80 WTOLEN EQU *-WTOAREA * *********************************************************************** REENTAX EQU * REENTAL EQU *-REENTA Re-Entrant Area Length LTORG R0 EQU 0 Register 0 R1 EQU 1 Input parameter address R2 EQU 2 Register 2. R3 EQU 3 Register 3. R4 EQU 4 Register 4. R5 EQU 5 Register 5. R6 EQU 6 Register 6. R7 EQU 7 Register 7. R8 EQU 8 Code register. R9 EQU 9 Register 9. R00 EQU 0 Register 0 R01 EQU 1 Input parameter address R02 EQU 2 Register 2. R03 EQU 3 Register 3. R04 EQU 4 Register 4. R05 EQU 5 Register 5. R06 EQU 6 Register 6. R07 EQU 7 Register 7. R08 EQU 8 Code register. R09 EQU 9 Register 9. R10 EQU 10 Register 10. R11 EQU 11 Register 11. R12 EQU 12 Register 12. R13 EQU 13 Save area address R14 EQU 14 Return address R15 EQU 15 Entry point address at entry, * return code at exit. IHALLP1 END /* //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR // DD DSN=SYS1.AMODGEN,DISP=SHR //SYSUT1 DD UNIT=(SYSDA,SEP=SYSLIB),SPACE=(CYL,(10,5)),DSN=&SYSUT1 //SYSPUNCH DD DUMMY //SYSPRINT DD SYSOUT=*,DCB=(BLKSIZE=3509), // UNIT=(,SEP=(SYSUT1,SYSPUNCH)) //SYSLIN DD DISP=(,PASS),UNIT=SYSDA,SPACE=(CYL,(5,5,0)), // DCB=(BLKSIZE=400),DSN=&&LOADSET //L EXEC PGM=IEWL,PARM='MAP,LET,LIST,REUS,RENT,AC=1', // REGION=1M,COND=(8,LT,A) //SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE) // DD DDNAME=SYSIN //SYSLMOD DD DISP=SHR, // DSN=your.linklib(CSVLLIX1) //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(3,2)),DSN=&SYSUT1 //SYSPRINT DD SYSOUT=*,DCB=(RECFM=FB,BLKSIZE=3509)