     PGM PARM(&USER &PRVSIGNON &ATTEMPTS &USRSTATUS &PWDCHGDTE  +
              &PWDEXPITV &PWDEXPDTE &PWDREMDAY &USERNAME &MSGID +
              &MSGTXT)

     DCL        VAR(&USER) TYPE(*CHAR) LEN(10)
     DCL        VAR(&PRVSIGNON) TYPE(*CHAR) LEN(13)
     DCL        VAR(&ATTEMPTS) TYPE(*CHAR) LEN(8)
     DCL        VAR(&USRSTATUS) TYPE(*CHAR) LEN(8)
     DCL        VAR(&PWDCHGDTE) TYPE(*CHAR) LEN(8)
     DCL        VAR(&PWDEXPITV) TYPE(*CHAR) LEN(8)
     DCL        VAR(&PWDEXPDTE) TYPE(*CHAR) LEN(8)
     DCL        VAR(&PWDREMDAY) TYPE(*CHAR) LEN(8)
     DCL        VAR(&USERNAME) TYPE(*CHAR) LEN(8)

     DCL        VAR(&MSGID)   TYPE(*CHAR) LEN(7)
     DCL        VAR(&MSGDTA)  TYPE(*CHAR) LEN(100)
     DCL        VAR(&MSGTXT)  TYPE(*CHAR) LEN(132)

     MONMSG     MSGID(CPF0000) EXEC(GOTO CMDLBL(END))

/* Initialisation                                                    */
     CHGVAR     &MSGTXT ' '
     CHGVAR     &MSGDTA ' '
     CHGVAR     &MSGID  ' '

/* Retrieve User Information                                         */
     CALL   PGM(RTVUSRINFR) PARM(&USER &PRVSIGNON &ATTEMPTS +
                &USRSTATUS &PWDCHGDTE &PWDEXPITV &PWDEXPDTE +
                &PWDREMDAY &USERNAME &MSGID &MSGDTA )

/* Get Message Text                                                  */
     IF         (&MSGID *NE *BLANKS) THEN(DO)
             RTVMSG     MSGID(&MSGID) MSGF(QCPFMSG) MSGDTA(&MSGDTA) +
                          MSG(&MSGTXT)
     ENDDO

END:
     ENDPGM
