//ZPS185A JOB ,'JOAO',CLASS=A,REGION=0M,TIME=300,
// NOTIFY=&SYSUID,COND=(0,NE)
//ST01 EXEC PGM=ASMA90,PARM='OBJECT,RENT'
//SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR
// DD DSN=SYS1.MODGEN,DISP=SHR
//SYSLIN DD DSN=SYS1.OBJECT(HASP310),DISP=SHR
//SYSUT1 DD UNIT=3390,SPACE=(CYL,(10,5))
//SYSPRINT DD SYSOUT=*
//SYSPUNCH DD DUMMY
//SYSIN DD *
PRINT NOGEN
*------------------------------------------------------------------* 00043200
* * 00043300
* Program: HASP310 (MPF Exit) * 00043401
* * 00043300
* Get MSG "$HASP310 jobname--TERMINATED AT END OF MEMORY" * 00043600
* Issue command "F CA7,/REQUEUE,JOB=XXXXXXXX * 00043500
* * 00043300
* Linkedit in a LNKLSTed dataset * 00044000
* F LLA,REFRESH * 00044100
* * 00043300
* Include in SYS1.PARMLIB(MPFLSTxx): * 00044100
* $HASP310,SUP(NO),USEREXIT(HASP310),AUTO(NO) * 00045001
* * 00043300
* Refresh MPFLIST: T MPF=00 * 00046000
* * 00043300
* Because the exit routine executes as a part of the * 00043300
* control program, issue a Getmain or Storage macro * 00043300
* only in subpools 229, 230, and 249. * 00043300
* * 00043300
* Register at Entry * 00043300
* ----------------- * 00043300
* Register 1 contains the address of a pointer to the * 00043300
* exit parameter list (the CTXT), which is mapped by * 00043300
* macro IEZVX100 (data area CTXT). * 00043300
* * 00043300
* $HASP310 jobname- TERMINATED AT END OF MEMORY *
* * 00043300
* Joao - 23/05/2005 * 00043300
* 29/09/2017 * 00043300
*------------------------------------------------------------------* 00043200
EJECT
*------------------------------------------------------------------* 00043200
* * 00043300
* M a i n R o u t i n e * 00043300
* * 00043300
*------------------------------------------------------------------* 00043200
SPACE
HASP310 CSECT *-------------------* 00421001
HASP310 AMODE 31 * * 00422001
HASP310 RMODE ANY * * 00423001
BAKR R14,0 * Save Regs *
LR R12,R15 * load Base *
USING HASP310,R12 * R12 HASP310 Base * 00430000
L R2,0(,R1) * CTXT addr * 00434000
USING CTXT,R2 * using CTXT * 00435000
L R3,CTXTTXPJ * Major Line addr * 00437000
USING CTXTATTR,R3 * Major Line base * 00438000
LA R4,CTXTTMSG * Msg Text addr * 00440000
USING MSGTEXT,R4 * Msg Text Base * 00450000
CLC MSGID(8),=C'$HASP310' * Msg $HASP375 ? * 00550000
BNE END00 * No exit * 00560000
LA R0,AREA_L * R0 Area length *
GETMAIN RU,LV=(R0),SP=230 * *
LR R11,R1 * Work Area addr *
USING AREA,R11 * Work Area base *
MVC CMDLEN,=XL2'46' * CMDLEN 70 bytes * 00633009
MVC CMDAREA(70),=70C' ' * Clear Cmdarea * 00633109
MVC CMDAREA(30),MSG0 * Move Cmd * 00633209
MVC JOB,JOBNAME * WORK AREA BASE *
LA R2,CMDLEN * Command Lenght *
MGCRE MF=(E,CMD00),TEXT=(R2), * * X
CONSID=MSTRID,UTOKEN=(R7) * Send command *
LA R0,AREA_L * *
FREEMAIN RU,LV=(R0),A=(R11),SP=230 * Free memory *
END00 EQU * * * 00191003
PR *-------------------* 00662600
* 00190303
EJECT
*------------------------------------------------------------------* 00234303
* * 00234403
* W o r k A r e a s & C o n s t a n t s * 00234403
* * 00234403
*------------------------------------------------------------------* 00234503
SPACE
MSG0 DC CL30'F CA7,/REQUEUE,JOB= ' CA7 STC Name
* ....+....1....+....2....+....3
DS 0F
CMD00 MGCRE MF=L 00232911
MSTRID DC F'0'
R0 EQU 0
R1 EQU 1
R2 EQU 2
R3 EQU 3
R4 EQU 4
R5 EQU 5
R6 EQU 6
R7 EQU 7
R8 EQU 8
R9 EQU 9
R10 EQU 10
R11 EQU 11
R12 EQU 12
R13 EQU 13
R14 EQU 14
R15 EQU 15
LTORG
* 00436000
AREA DSECT 00664000
CMDLEN DS XL2 00664100
CMDAREA DS 0CL70 00664200
DS CL19
JOB DS CL8
DS CL43
AREA_L EQU *-AREA 00664500
*
MSGTEXT DSECT 00664802
MSGID DS CL8 $HASP310 00664902
DS CL1 space 00665002
JOBNAME DS CL8 JOBNAME 00665102
DS CL1 space 00665202
DS CL10 TERMINATED 00665302
DS CL1 space 00665202
DS CL2 AT 00665402
DS CL1 space 00665202
DS CL3 END 00665202
DS CL1 space 00665202
KBYTES DS CL3 OFF 00665502
DS CL1 space 00665202
DS CL6 MEMORY 00665202
*
IEZVX100 00667700
END 00236303
/*
//LKED EXEC PGM=HEWL,PARM='LIST,MAP,XREF,RENT,REUS,AC=1'
//SYSPRINT DD SYSOUT=*
//SYSLMOD DD DSN=SYS1.TOOLS.LINKLIB,DISP=SHR
//OBJECT DD DSN=SYS1.OBJECT,DISP=SHR
//SYSUT1 DD SPACE=(CYL,(2,1)),UNIT=3390,DCB=BUFNO=1
//SYSLIN DD *
INCLUDE OBJECT(HASP310)
ENTRY HASP310
SETSSI 28092017
NAME HASP310(R)
/*
//ST03 EXEC PGM=SWS0,PARM=1
//SYSOUT DD SYSOUT=*
//SYSRDR DD DUMMY
//SYSIN DD *
CMD=F LLA,REFRESH
WAIT=0000100
CMD=SET MPF=00
/*