diff --git a/jcmacro.rexx b/jcmacro.rexx new file mode 100644 index 0000000..340c916 --- /dev/null +++ b/jcmacro.rexx @@ -0,0 +1,49 @@ +/* REXX */ +/* ONLY FOR DEBUG +CJNUM = CNTJNUM +ADDRESS ISPEXEC "VPUT (CJNUM) PROFILE" +*/ +STMT2="// NOTIFY="USERID()",REGION=28M,CLASS=A" +STMTC="//*** JOB CARD GENERATED AUTOMATICALLY *** " +CNTJNUM = 0 +ADDRESS ISPEXEC +"ISREDIT MACRO (PGMRNAME)" /* PGMRNAME: PARAMETER PASSED TO THE MACRO */ +"ISREDIT (MBR) = MEMBER" +IF LENGTH(PGMRNAME) < 1 THEN DO /* IF PGMRNAME NOT SPECIFIED */ + CALL GET_UNAME /* GET PGMRNAME */ + END + ELSE DO + IF LENGTH(PGMRNAME) > 18 THEN , + PGMRNAME = SUBSTR(PGMRNAME,1,18) + END +"VGET (CJNUM) PROFILE" +CVAR = CJNUM +IF DATATYPE(CVAR) <> "NUM" THEN + DO + CJNUM = CNTJNUM + "VPUT (CJNUM) PROFILE" + END +CJNUM = CJNUM + 1 +IF CJNUM > 9 THEN DO + CJNUM = 1 + END +STMT1 = "//"USERID()||CJNUM||, + " JOB (MOSHIX),'"||PGMRNAME||"',MSGCLASS=H," +"VPUT (CJNUM) PROFILE" +"ISREDIT LOCATE .ZFIRST" /* TEST IF THE MEMBER IS EMPTY */ +IF RC <> 8 THEN "ISREDIT UP MAX" /* TOP OF THE SCREEN */ +'ISREDIT LINE_AFTER 0 =(STMT1)' /*PUT IN THE MBR FIRST JOBCARD PIECE */ +'ISREDIT LINE_AFTER 1 =(STMT2)' /*PUT IN THE MBR SECOND JOBCARD PIECE*/ +'ISREDIT LINE_AFTER 2 =(STMTC)' /*PUT IN THE MBR JOBCARD COMMENT */ +"ISREDIT HI JCL" /* HILITE JCL CONTROL STATEMENT */ +EXIT +GET_UNAME: + PSAOLD = STORAGE(D2X(548),4) /* PTR PSA */ + ASCBASXB = STORAGE(D2X(C2D(PSAOLD)+108),4) /* PTR ASXB */ + ACEEADDR = STORAGE(D2X(C2D(ASCBASXB)+200),4) /* PTR ACEE */ + USERID = STORAGE(D2X(C2D(ACEEADDR)+21),8) /* USER NAME */ + LOGONGRP = STORAGE(D2X(C2D(ACEEADDR)+30),8) /* LOGON GROUP */ + ACEEUNAM = STORAGE(D2X(C2D(ACEEADDR)+100),4) /* PTR USER NAME */ + PGMRNAME = STORAGE(D2X(C2D(ACEEUNAM)+1),20) /* PROGRAMMER NAME */ + PGMRNAME = STRIP(PGMRNAME) +RETURN