MACRO 01000020 &NAME PSWGEN &FUNC,&PARM,®,&VAR PROTOTYPE 02000020 GBLB &EXECN,&EXECF MULTIPLE EXPANSION SWITCHES 03000020 LCLC &HEX,&SUFFIX CHARACTER VARIABLES 04000020 &SUFFIX SETC '&SYSNDX'(2,4) SET 3 CHARACTER SYSNDX VALUE 05000020 .* 06000020 .* 07000020 .* ALL FUNCTIONS OF THIS MACRO WILL USE CSECT NAME OF THE 08000020 .* INVOKING PROCEDURE FOR FUNCTION NAME... 09000020 .* 10000020 .* WHEN MORE THAN ONE CSECT INVOKE THE SAME FUNCTION, 11000020 .* THEY WILL ENTER THE SELECTED CODE VIA 'STACKED' ENTRIES- 12000020 .* SUCH AS - .FIRST ANOP 13000020 .* .NEXT ANOP 14000020 .* .LAST ANOP ETC. 15000020 .* 16000020 .*********************** 17000020 AIF ('&FUNC' EQ 'IGG019V5A').LPSW01 18000020 AIF ('&FUNC' EQ 'IGG019V5B').LPSW02 19000020 AGO .PSWNG3 UNSUPPORTED FUNCTION 20000020 .LPSW01 ANOP 21000020 *********************************************************************** 22000020 * THIS FUNCTION OF PSWGEN OWNED AND MAINTAINED BY IBM PERSONNEL, 23000020 * GENERATES CODE FOR LPSW INSTRUCTION FOR 1419 SUPPORT 24000020 * IOSGEN IGG019V5A,&PARM,® 25000020 * &PARM--SYMBOL DEFINING INSTRUCTION ADDRESS TO BE PUT IN PSW 26000020 * ®--A SUBLIST OF 3 REGISTER NAMES. THE FIRST MUST CONTAIN 27000020 * THE DEB ADDRESS AND THE OTHER TWO MUST BE TWO CONTIGUOUS 28000020 * REGISTERS. 29000020 *********************************************************************** 30000020 SPACE 1 31000020 MVZ PSW1+1(1),PTKEY(®(1)) PUT USERS PROTECT KEY INTO PSW. 32000020 LA ®(2),&PARM LOAD ADDR 33000020 ST ®(2),PSW1+4 STORE ADDR IN PSW 34000020 L ®(2),PSW2 SAVE FIRST HALF OF RETURN PSW 35000020 LPSW PSW1 SET USERS PROTECT KEY-BRANCH 36000020 SPACE 1 37000020 DS 0D 38000020 PSW1 DC X'04' AREA 39000000 DC X'0C' FOR 40000000 DC 2X'00' BUILDING USERS 41000020 DC F'0' PSW 42000020 SPACE 1 43000020 PSW2 DC X'04' FIRST HALF 44000000 DC X'0C' OF RETURN 45000000 DC 2X'00' PSW 46000020 PTKEY EQU 24 DISPLACEMENT TO PROTECT KEY 47000020 MEXIT 48000020 .LPSW02 ANOP 49000020 * THIS FUNCTION OF PSWGEN OWNED AND MAINTAINED BY IBM PERSONNEL, 50000020 * GENERATES CODE FOR LPSW INSTRUCTION FOR 1419 SUPPORT 51000020 * IOSGEN IGG019V5B,&PARM,® 52000020 * &PARM--SYMBOL DEFINING INSTRUCTION ADDRESS TO BE PUT IN PSW 53000020 * ®--A SUBLIST OF 3 REGISTER NAMES. THE FIRST MUST CONTAIN 54000020 * A SAVE AREA ADDRESS (DOUBLE WORD BOUNDARY) AND THE OTHER 55000020 * TWO MUST BE TWO CONTIGUOUS REGISTERS. 56000020 SPACE 1 57000020 LA ®(3),&PARM LOAD ADDR 58000020 STM ®(2),®(3),0(®(1)) PUT PSW IN SAVE AREA 59000020 LPSW 0(®(1)) RESTORE KEY 0 AND BRANCH 60000020 MEXIT 61000020 .********************************************************************** 62000020 .* ALL MNOTES SHOULD BE PLACED BELOW -- 63000020 .* 64000020 .* * 65000020 .PSWNG2 MNOTE 8,'*** INSUFFICIENT WORK REGISTERS SPECIFIED.' 69000020 MEXIT 70000020 .* * 71000020 .PSWNG3 MNOTE 8,'*** ERROR IN PARAMETER SET UP, OR ''&FUNC'' NOT A SUP+72000020 PORTED FUNCTION.' 73000020 .* 74000020 .PSWGEND MEND 75000020