PGM PARM(&PGM &SRCFILE &SRCMBR &TEXT &SRCOPT + &SRCCMP &REPLACE &USRPRF &ADPAUT &AUT + &LIST &GEN &XREF &ATR &SUBSCR &SUBSTR + &CLRPSSA &CLRPASA &IGNDEC &IGNBIN + &OVERLAP &DUP &OPT &TGTRLS) /* COMMAND PARAMETERS */ /* TEST2 */ DCL VAR(&PGM) TYPE(*CHAR) LEN(20) DCL VAR(&SRCFILE) TYPE(*CHAR) LEN(20) DCL VAR(&SRCMBR) TYPE(*CHAR) LEN(10) DCL VAR(&TEXT) TYPE(*CHAR) LEN(50) DCL VAR(&SRCOPT) TYPE(*CHAR) LEN(10) DCL VAR(&SRCCMP) TYPE(*CHAR) LEN(10) DCL VAR(&REPLACE) TYPE(*CHAR) LEN(11) DCL VAR(&USRPRF) TYPE(*CHAR) LEN(11) DCL VAR(&ADPAUT) TYPE(*CHAR) LEN(11) DCL VAR(&AUT) TYPE(*CHAR) LEN(10) DCL VAR(&LIST) TYPE(*CHAR) LEN(11) DCL VAR(&GEN) TYPE(*CHAR) LEN(11) DCL VAR(&XREF) TYPE(*CHAR) LEN(11) DCL VAR(&ATR) TYPE(*CHAR) LEN(11) DCL VAR(&SUBSCR) TYPE(*CHAR) LEN(11) DCL VAR(&SUBSTR) TYPE(*CHAR) LEN(11) DCL VAR(&CLRPSSA) TYPE(*CHAR) LEN(11) DCL VAR(&CLRPASA) TYPE(*CHAR) LEN(11) DCL VAR(&IGNDEC) TYPE(*CHAR) LEN(11) DCL VAR(&IGNBIN) TYPE(*CHAR) LEN(11) DCL VAR(&OVERLAP) TYPE(*CHAR) LEN(11) DCL VAR(&DUP) TYPE(*CHAR) LEN(11) DCL VAR(&OPT) TYPE(*CHAR) LEN(11) DCL VAR(&TGTRLS) TYPE(*CHAR) LEN(11) DCLF FILE(QMISRC) /* QPRCRTPG API PARAMETERS */ DCL VAR(&P_IRPSPP) TYPE(*PTR) DCL VAR(&P_IRPDTA) TYPE(*CHAR) STG(*BASED) + LEN(160 ) BASPTR(&P_IRPSPP) DCL VAR(&P_IRPLEN) TYPE(*CHAR) LEN(4) + VALUE(X'00000000') DCL VAR(&P_PGM) TYPE(*CHAR) LEN(20) DCL VAR(&P_TEXT) TYPE(*CHAR) LEN(50) DCL VAR(&P_SRCFILE) TYPE(*CHAR) LEN(20) DCL VAR(&P_SRCMBR) TYPE(*CHAR) LEN(10) DCL VAR(&P_SRCDAT) TYPE(*CHAR) LEN(13) DCL VAR(&P_PRTFILE) TYPE(*CHAR) LEN(20) DCL VAR(&P_STRPAG) TYPE(*CHAR) LEN(4) + VALUE(X'00000001') DCL VAR(&P_AUT) TYPE(*CHAR) LEN(10) DCL VAR(&P_OPT) TYPE(*CHAR) LEN(187) DCL VAR(&P_OPTNUM) TYPE(*INT) LEN(4) VALUE(17) /* INTERNAL VARIABLES */ DCL VAR(&USRSPC) TYPE(*CHAR) LEN(20) + VALUE('USPRCRTPG QTEMP ') DCL VAR(&R_RTNLIB) TYPE(*CHAR) LEN(10) DCL VAR(&R_SRCCHG) TYPE(*CHAR) LEN(13) DCL VAR(&R_TEXT) TYPE(*CHAR) LEN(50) DCL VAR(&R_CURLIB) TYPE(*CHAR) LEN(10) DCL VAR(&R_NBRRCD) TYPE(*DEC) LEN(10 0) DCL VAR(&SPPPOS) TYPE(*CHAR) LEN(4) + VALUE(X'00000000') MONMSG MSGID(CPF0000 MCH0000) EXEC(GOTO CMDLBL(EXCP)) /* MAIN PROGRAM */ /* REPLACE SPECIAL VALUES WITH CORRECT */ RTVJOBA CURLIB(&R_CURLIB) IF COND(%SST(&PGM 11 10) *EQ '*CURLIB') + THEN(CHGVAR VAR(%SST(&PGM 11 10)) + VALUE(&R_CURLIB)) IF COND(&SRCMBR *EQ '*PGM') THEN(CHGVAR + VAR(&SRCMBR) VALUE(%SST(&PGM 1 10))) RTVMBRD FILE(%SST(&SRCFILE 11 10)/%SST(&SRCFILE 1 + 10)) MBR(&SRCMBR) RTNLIB(&R_RTNLIB) + SRCCHGDATE(&R_SRCCHG) TEXT(&R_TEXT) + NBRCURRCD(&R_NBRRCD) CHGVAR VAR(%SST(&SRCFILE 11 10)) VALUE(&R_RTNLIB) IF COND(&TEXT *EQ '*SRCMBRTXT') THEN(CHGVAR + VAR(&TEXT) VALUE(&R_TEXT)) CALL PGM(QUSCRTUS) PARM(&USRSPC ' ' + X'00100000' X'00' '*USE ' 'CRTMIPGM + Working storage (QPRCRTPG) ') /* ASSEMBLE API ARGUMENTS */ CALL PGM(QUSPTRUS) PARM(&USRSPC &P_IRPSPP) CHGVAR VAR(%BIN(&P_IRPLEN)) VALUE(&R_NBRRCD * 80) CHGVAR VAR(&P_PGM) VALUE(&PGM) CHGVAR VAR(&P_TEXT) VALUE(&TEXT) CHGVAR VAR(&P_SRCFILE) VALUE(&SRCFILE) CHGVAR VAR(&P_SRCMBR) VALUE(&SRCMBR) CHGVAR VAR(&P_SRCDAT) VALUE(&R_SRCCHG) CHGVAR VAR(&P_PRTFILE) VALUE('QSYSPRT *LIBL ') CHGVAR VAR(&P_AUT) VALUE(&AUT) CHGVAR VAR(&P_OPT) VALUE(&REPLACE *CAT &USRPRF *CAT + &ADPAUT *CAT &LIST *CAT &GEN *CAT &XREF + *CAT &ATR *CAT &SUBSCR *CAT &SUBSTR *CAT + &CLRPSSA *CAT &CLRPASA *CAT &IGNDEC *CAT + &IGNBIN *CAT &OVERLAP *CAT &DUP *CAT &OPT + *CAT &TGTRLS) /* POPULATE USRSPC */ OVRDBF FILE(QMISRC) TOFILE(%SST(&SRCFILE 11 + 10)/%SST(&SRCFILE 1 10)) MBR(&SRCMBR) CHGVAR VAR(%BIN(&SPPPOS)) VALUE(1) NEXT: RCVF MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(EOF)) CALL PGM(QUSCHGUS) PARM(&USRSPC &SPPPOS + X'00000050' &SRCDTA '0') CHGVAR VAR(%BIN(&SPPPOS)) VALUE(%BIN(&SPPPOS) + 80) GOTO NEXT EOF: CALL PGM(QPRCRTPG) PARM(&P_IRPDTA X'000000A0' + &P_PGM &P_TEXT &P_SRCFILE &P_SRCMBR &P_SRCDAT &P_PRTFILE &P_STRPAG + &P_AUT &P_OPT &P_OPTNUM ) MONMSG MSGID(CPF6301) DLTUSRSPC USRSPC(%SST(&USRSPC 11 10)/%SST(&USRSPC 1 10)) SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Program + compilation successful') MSGTYPE(*COMP) GOTO CMDLBL(ENDPGM) EXCP: SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) + MSGDTA('Compilation failed, please see + previous messages for reasons') + MSGTYPE(*ESCAPE) ENDPGM: ENDPGM