* 01000003 * %GOTO PIEL1; /* 01500003 MACRO 02000001 IHAPIE &DSECT=YES */ 03000003 *%PIEL1: ; 03060003 * 03120003 */* **************************************************************** */ 03180003 */* */ 03240003 */* PROGRAM INTERRUPT ELEMENT (PIE) */ 03300003 */* */ 03360003 */* A PIE IS CREATED AFTER A PROGRAM CHECK HAS OCCURRED IF */ 03420003 */* THERE IS A USER-SPECIFIED EXIT ROUTINE TO HANDLE PROGRAM */ 03480003 */* CHECK INTERRUPTIONS. A PIE IS USED TO PASS THE NECESSARY */ 03540003 */* DATA TO THE USER-SPECIFIED EXIT ROUTINE. */ 03600003 */* */ 03660003 */* OS/VS2 RELEASE 3, OS/VS1 RELEASE 4, 09/30/74, LEVEL=1 */ 03720003 */* **************************************************************** */ 03780003 *%GOTO PIEL2; /* 03840003 SPACE 1 03870003 AIF ('&DSECT' EQ 'NO').NODSCT 04000001 PIE DSECT 05000001 AGO .CONT 06000001 .NODSCT ANOP 07000001 DS 0D - 08000001 PIE EQU * - PIEPTR 09000001 .CONT ANOP 10000001 IEZBITS , - SYMBOLIC BIT DEFINITIONS 11000003 PIEPICA DS 0F - ADDRESS OF THE CURRENT PICA 24000001 PIEFLGS DS B - FLAG BYTE 25000001 PIENOPI EQU BIT0 - IF ONE, INDICATES THAT THE TASK CANNOT 26000001 * ACCEPT FURTHER PI'S 27000001 PIEPICAA DS AL3 - ADDRESS OF THE CURRENT PICA 28000001 PIEPSW DS CL8 - PI OLD PSW STORED AT PROGRAM INTERRUPT 29000001 * TIME 30000001 PIEGR14 DS F - SAVE AREA FOR REGISTER 14 31000001 PIEGR15 DS F - SAVE AREA FOR REGISTER 15 32000001 PIEGR0 DS F - SAVE AREA FOR REGISTER 0 33000001 PIEGR1 DS F - SAVE AREA FOR REGISTER 1 34000001 PIEGR2 DS F - SAVE AREA FOR REGISTER 2 35000001 MEND , */ 36000001 *%PIEL2 : ; 37000003 * 38000001 *DECLARE 50000001 * 1 PIE BASED(PIEPTR) BDY(WORD), 51000003 * 2 PIEPICA FIXED(31), /* ADDRESS OF THE CURRENT 52000001 * PICA */ 53000001 * 3 PIEFLGS CHAR(1), /* FLAG BYTE */ 54000001 * 4 PIENOPI BIT(1), /* IF ONE, INDICATES THAT 55000001 * THE TASK CANNOT ACCEPT 56000003 * FURTHER PI'S */ 57000001 * 4 * BIT(7), /* RESERVED */ 58000001 * 3 PIEPICAA PTR(24), /* ADDRESS OF THE CURRENT 59000003 * PICA */ 60000001 * 2 PIEPSW CHAR(8) BDY(WORD), /* PI OLD PSW STORED AT 61000003 * PROGRAM INTERRUPT TIME */ 62000003 * 2 PIEGR14 FIXED(31), /* SAVE AREA FOR REGISTER 63000001 * 14 */ 64000001 * 2 PIEGR15 FIXED(31), /* SAVE AREA FOR REGISTER 65000001 * 15 */ 66000001 * 2 PIEGR0 FIXED(31), /* SAVE AREA FOR REGISTER 0 */ 67000001 * 2 PIEGR1 FIXED(31), /* SAVE AREA FOR REGISTER 1 */ 68000001 * 2 PIEGR2 FIXED(31); /* SAVE AREA FOR REGISTER 2 */ 69000001