PGM PARM(&CMDNAME &KEYPRM &STRING) /*---------------------------------------------------------*/ /* CHGFMTCMD : CHGFMT 用プロンプト一時変更プログラム */ /* */ /* ラ 註 ン MYLIB の値を変更してください。 */ /* */ /*---------------------------------------------------------*/ DCL VAR(&MSG) TYPE(*CHAR) LEN(80) DCL VAR(&CMDNAME) TYPE(*CHAR) LEN(20) DCL VAR(&KEYPRM) TYPE(*CHAR) LEN(20) DCL VAR(&KEYPRM1) TYPE(*CHAR) LEN(10) DCL VAR(&KEYPRM2) TYPE(*CHAR) LEN(10) DCL VAR(&CMD) TYPE(*CHAR) LEN(10) DCL VAR(&OBJLIB) TYPE(*CHAR) LEN(10) DCL VAR(&STRING) TYPE(*CHAR) LEN(5700) DCL VAR(&STRINGLEN) TYPE(*DEC) LEN(8 0) VALUE(268) DCL VAR(&BIN02) TYPE(*CHAR) LEN(2) DCL VAR(&BIN04) TYPE(*CHAR) LEN(4) DCL VAR(&FILLIB) TYPE(*CHAR) LEN(21) + VALUE('??FILLIB(') DCL VAR(&SRCFILE) TYPE(*CHAR) LEN(34) + VALUE(' ??SRCFILE(') DCL VAR(&SRCMBR) TYPE(*CHAR) LEN(22) + VALUE(' ??SRCMBR(') DCL VAR(&RCDLEN) TYPE(*CHAR) LEN(17) + VALUE(' ??RCDLEN(') DCL VAR(&IGCDTA) TYPE(*CHAR) LEN(16) + VALUE(' ??IGCDTA(') DCL VAR(&TEXT) TYPE(*CHAR) LEN(60) + VALUE(' ??TEXT(''') DCL VAR(&MAXMBRS) TYPE(*CHAR) LEN(18) + VALUE(' ??MAXMBRS(') DCL VAR(&MAINT) TYPE(*CHAR) LEN(17) + VALUE(' ??MAINT(') DCL VAR(&SIZE) TYPE(*CHAR) LEN(09) + VALUE(' ??SIZE()') DCL VAR(&INZ) TYPE(*CHAR) LEN(19) + VALUE(' ??INZ(') DCL VAR(&ADDRCD) TYPE(*CHAR) LEN(17) + VALUE(' ??ADDRCD(') DCL VAR(&MAXADD) TYPE(*CHAR) LEN(17) + VALUE(' ??MAXADD(') DCL VAR(&CONTIG) TYPE(*CHAR) LEN(16) + VALUE(' ??CONTIG(') DCL VAR(&LVLCHK) TYPE(*CHAR) LEN(16) + VALUE(' ??LVLCHK(') DCL VAR(&AUT) TYPE(*CHAR) LEN(19) + VALUE(' ??AUT(') DCL VAR(&MBR) TYPE(*CHAR) LEN(10) DCL VAR(&SRCLIB) TYPE(*CHAR) LEN(10) DCL VAR(&SRCFIL) TYPE(*CHAR) LEN(10) DCL VAR(&SRCTYPE) TYPE(*CHAR) LEN(5) DCL VAR(&ADD) TYPE(*CHAR) LEN(10) DCL VAR(&ADDLIB) TYPE(*CHAR) LEN(10) DCL VAR(&ADDFIL) TYPE(*CHAR) LEN(10) DCL VAR(&FLLIB) TYPE(*CHAR) LEN(10) DCL VAR(&SRCFIL) TYPE(*CHAR) LEN(10) DCL VAR(&SRCLIB) TYPE(*CHAR) LEN(10) DCL VAR(&MBR) TYPE(*CHAR) LEN(10) DCL VAR(&LEN) TYPE(*CHAR) LEN(5) DCL VAR(&IGC) TYPE(*CHAR) LEN(4) DCL VAR(&TXT) TYPE(*CHAR) LEN(50) DCL VAR(&MAX) TYPE(*CHAR) LEN(6) DCL VAR(&MAIN) TYPE(*CHAR) LEN(6) DCL VAR(&IN) TYPE(*CHAR) LEN(10) DCL VAR(&INZREC) TYPE(*DEC) LEN(10 0) DCL VAR(&ADS) TYPE(*CHAR) LEN(5) DCL VAR(&ADDREC) TYPE(*DEC) LEN(5 0) DCL VAR(&MADD) TYPE(*CHAR) LEN(5) DCL VAR(&MAXK) TYPE(*DEC) LEN(5 0) DCL VAR(&CONTI) TYPE(*CHAR) LEN(4) DCL VAR(&LVL) TYPE(*CHAR) LEN(4) DCL VAR(&AU) TYPE(*CHAR) LEN(10) DCL VAR(&CPFERR) TYPE(*CHAR) LEN(7) MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR)) CHGVAR VAR(%BIN(&BIN04)) VALUE(&STRINGLEN) CHGVAR VAR(&BIN02) VALUE(%SST(&BIN04 03 02)) CHGVAR VAR(&KEYPRM1) VALUE(%SST(&KEYPRM 01 10)) CHGVAR VAR(&KEYPRM2) VALUE(%SST(&KEYPRM 11 10)) /* ************************************************ */ /* ファイル属性の検索 */ /* ************************************************ */ /* この MYLIB を変更してください。 */ MYLIB/RTVFD FILE(&KEYPRM2/&KEYPRM1) FILLIB(&FLLIB) + SRCFIL(&SRCFIL) SRCLIB(&SRCLIB) + SRCMBR(&MBR) RCDLEN(&LEN) TEXT(&TXT) + MAXMBRS(&MAX) MAINT(&MAIN) INZSIZ(&IN) + ADDSIZ(&ADS) MAXADD(&MADD) CONTIG(&CONTI) + LVLCHK(&LVL) AUT(&AU) CPFERR(&CPFERR) IF COND(&CPFERR *NE ' ') THEN(GOTO + CMDLBL(ERROR)) IF COND(&MAX *EQ '000000') THEN(DO) CHGVAR VAR(&MAX) VALUE('*NOMAX') ENDDO IF COND(%SST(&IN 1 5) *EQ '00000') THEN(DO) CHGVAR VAR(&IN) VALUE(%SST(&IN 6 5)) ENDDO IF COND(%SST(&ADS 1 1) *EQ '0') THEN(DO) CHGVAR VAR(&ADS) VALUE(%SST(&ADS 2 4)) ENDDO IF COND(&ADS *EQ '0000') THEN(DO) CHGVAR VAR(&ADS) VALUE(' ') ENDDO IF COND(%SST(&MADD 1 4) *EQ '0000') THEN(DO) CHGVAR VAR(&MADD) VALUE(%SST(&MADD 5 1)) ENDDO IF COND(&MADD *EQ '0') THEN(DO) CHGVAR VAR(&MADD) VALUE(' ') ENDDO IF COND((&ADS *NE ' ') *AND (&MADD *NE ' ')) + THEN(DO) CHGVAR VAR(&INZREC) VALUE(&IN) CHGVAR VAR(&ADDREC) VALUE(&ADS) CHGVAR VAR(&MAXK) VALUE(&MADD) CHGVAR VAR(&INZREC) VALUE(&INZREC - (&ADDREC * + &MAXK)) IF COND(&INZREC *EQ 0) THEN(DO) CHGVAR VAR(&INZREC) VALUE(10000) ENDDO CHGVAR VAR(&IN) VALUE(&INZREC) IF COND(%SST(&IN 1 5) *EQ '00000') THEN(DO) CHGVAR VAR(&IN) VALUE(%SST(&IN 6 5)) ENDDO IF COND(&ADDREC *EQ 0) THEN(DO) CHGVAR VAR(&ADDREC) VALUE(1000) ENDDO IF COND(&MAXK *EQ 0) THEN(DO) ENDDO ENDDO IF COND((&ADS *EQ ' ') *AND (&MADD *EQ ' ')) + THEN(DO) IF COND(&IN *NE '*NOMAX') THEN(DO) CHGVAR VAR(&IN) VALUE('10000') CHGVAR VAR(&ADS) VALUE('1000') CHGVAR VAR(&MADD) VALUE('3') ENDDO ENDDO /* ************************************************ */ /* 返信パラメータの作成 */ /* ************************************************ */ CHGVAR VAR(&FILLIB) VALUE(&FILLIB *TCAT &FLLIB *TCAT + ') ') CHGVAR VAR(&SRCFILE) VALUE(&SRCFILE *TCAT &SRCLIB + *TCAT '/' *TCAT &SRCFIL *TCAT ') ') CHGVAR VAR(&SRCMBR) VALUE(&SRCMBR *TCAT &MBR *TCAT + ') ') CHGVAR VAR(&RCDLEN) VALUE(&RCDLEN *TCAT &LEN *TCAT + ') ') CHGVAR VAR(&IGC) VALUE('*NO ') CHGVAR VAR(&IGCDTA) VALUE(&IGCDTA *TCAT &IGC *TCAT + ') ') CHGVAR VAR(&TEXT) VALUE(&TEXT *TCAT &TXT *TCAT + ''') ') CHGVAR VAR(&MAXMBRS) VALUE(&MAXMBRS *TCAT &MAX *TCAT + ') ') CHGVAR VAR(&MAINT) VALUE(&MAINT *TCAT &MAIN *TCAT + ') ') CHGVAR VAR(&INZ) VALUE(&INZ *TCAT &IN *TCAT + ') ') CHGVAR VAR(&ADDRCD) VALUE(&ADDRCD *TCAT &ADS *TCAT + ') ') CHGVAR VAR(&MAXADD) VALUE(&MAXADD *TCAT &MADD *TCAT + ') ') CHGVAR VAR(&CONTIG) VALUE(&CONTIG *TCAT &CONTI *TCAT + ') ') CHGVAR VAR(&LVLCHK) VALUE(&LVLCHK *TCAT &LVL *TCAT + ') ') CHGVAR VAR(&AUT) VALUE(&AUT *TCAT &AU *TCAT + ') ') /* ************************************************ */ /* 返信ストリングの作成 */ /* ************************************************ */ CHGVAR VAR(&STRING) VALUE(&BIN02) CHGVAR VAR(&STRING) VALUE(&STRING *TCAT &FILLIB) CHGVAR VAR(&STRING) VALUE(&STRING *TCAT &SRCFILE) CHGVAR VAR(&STRING) VALUE(&STRING *TCAT &SRCMBR) CHGVAR VAR(&STRING) VALUE(&STRING *TCAT &RCDLEN) CHGVAR VAR(&STRING) VALUE(&STRING *TCAT &IGCDTA) CHGVAR VAR(&STRING) VALUE(&STRING *TCAT &TEXT) CHGVAR VAR(&STRING) VALUE(&STRING *TCAT &MAXMBRS) CHGVAR VAR(&STRING) VALUE(&STRING *TCAT &MAINT) CHGVAR VAR(&STRING) VALUE(&STRING *TCAT &SIZE) CHGVAR VAR(&STRING) VALUE(&STRING *TCAT &INZ) CHGVAR VAR(&STRING) VALUE(&STRING *TCAT &ADDRCD) CHGVAR VAR(&STRING) VALUE(&STRING *TCAT &MAXADD) CHGVAR VAR(&STRING) VALUE(&STRING *TCAT &CONTIG) CHGVAR VAR(&STRING) VALUE(&STRING *TCAT &LVLCHK) CHGVAR VAR(&STRING) VALUE(&STRING *TCAT &AUT) RETURN CHGVAR VAR(&STRINGLEN) VALUE(0) CHGVAR VAR(%BIN(&BIN04)) VALUE(&STRINGLEN) CHGVAR VAR(&BIN02) VALUE(%SST(&BIN04 03 02)) CHGVAR VAR(&STRING) VALUE(&BIN02) ERROR: RCVMSG RMV(*NO) MSG(&MSG) SNDPGMMSG MSG(&MSG) MSGTYPE(*DIAG) SNDPGMMSG MSGID(CPF0011) MSGF(QCPFMSG) MSGTYPE(*ESCAPE) ENDPGM