On 12/15/2014 11:43 AM, Smith, Mike wrote:
   In my planning to upgrade to V7R1, I ran the ANZOBJCVN command and found out one of the program on my machine wouldn't convert.  Since I don't have the source, I had been trying to find it on the Internet but no deal.  I was wondering if anyone has KIKSRUN running on V7R1 (or possibly V6R1, flagged at that release as well).  It's a screen emulator that I've been trying to get my applications staff to stop using (clarify, one part time programmer, not a lot of resources for the application) but I couldn't wait any longer to upgrade V5R4 to V7R1.
Can't help at all with KIKSRUN, but
  I think the program that is failing is called CRTMIPGM1.. go figure, huh.
This I might be able to help you with.  I have a very ancient interface
to the MI compiler that invokes CRTMIPGM1.  Together, these pieces will
let you compile an MI program, which I'd guess is what is happening
behind the scenes.  Hopefully, you can reconstruct this part of the
utility.  Here is the source:
CMD: CRTMIPGM
             CMD        PROMPT('Create MI Program')
             PARM       KWD(PGM) TYPE(QPGM) MIN(1) PROMPT('Program')
 QPGM:       QUAL       TYPE(*NAME) LEN(10)
             QUAL       TYPE(*NAME) LEN(10) DFT(*CURLIB) +
                          SPCVAL((*CURLIB *CURLIB)) PROMPT('Library')
             PARM       KWD(SRCFILE) TYPE(QSRCFILE) PROMPT('Source +
                          file')
 QSRCFILE:   QUAL       TYPE(*NAME) LEN(10) DFT(QMISRC)
             QUAL       TYPE(*NAME) LEN(10) DFT(*LIBL) +
                          SPCVAL((*LIBL) (*CURLIB *CURLIB)) +
                          PROMPT('Library')
             PARM       KWD(SRCMBR) TYPE(*NAME) LEN(10) DFT(*PGM) +
                          SPCVAL((*PGM)) PROMPT('Source member')
             PARM       KWD(TEXT) TYPE(*CHAR) LEN(50) +
                          DFT(*SRCMBRTXT) SPCVAL((*SRCMBRTXT)) +
                          PROMPT('Text ''description''')
             PARM       KWD(OPTIONS) TYPE(*CHAR) LEN(11) RSTD(*YES) +
                          DFT(*LIST) VALUES(*GEN *NOGEN *NOLIST +
                          *LIST *NOXREF *XREF *NOATR *ATR *USER +
                          *ADOPT *OWNER *ADPAUT *NOAPTAUT *SUBSCR +
                          *NOSUBSCR *UNCON *SUBSTR *NOSUBSTR +
                          *CLRPSSA *NOCLRPSSA *CLRPASA *NOCLRPASA +
                          *NOIGNDEC *IGNDEC *NOIGNBIN *IGNBIN +
                          *NOOVERLAP *OVERLAP *NODUP *DUP *OPT +
                          *NOOPT) MAX(15) PMTCTL(*PMTRQS) +
                          PROMPT('Compiler options')
             PARM       KWD(REPLACE) TYPE(*LGL) LEN(1) RSTD(*YES) +
                          DFT(*YES) SPCVAL((*YES '1') (*NO '0')) +
                          PMTCTL(*PMTRQS) PROMPT('Replace program')
             PARM       KWD(AUT) TYPE(*NAME) LEN(10) DFT(*LIBCRTAUT) +
                          SPCVAL((*LIBCRTAUT) (*CHANGE) (*ALL) +
                          (*USE) (*EXCLUDE)) PMTCTL(*PMTRQS) +
                          PROMPT('Authority')
CLP: CRTMIPGM0
  PGM        PARM(&QPGM &QSRCFILE &SRCMBR &PGMTEXT +
                  &OPTIONS &REPLACE &AUT)
             DCL        VAR(&QPGM) TYPE(*CHAR) LEN(20)
             DCL        VAR(&QSRCFILE) TYPE(*CHAR) LEN(20)
             DCL        VAR(&SRCMBR) TYPE(*CHAR) LEN(10)
             DCL        VAR(&PGMTEXT) TYPE(*CHAR) LEN(50)
             DCL        VAR(&OPTIONS) TYPE(*CHAR) LEN(165)
             DCL        VAR(&REPLACE) TYPE(*LGL) LEN(1)
             DCL        VAR(&AUT) TYPE(*CHAR) LEN(10)
             DCL        VAR(&SRCFILE) TYPE(*CHAR) LEN(10)
             DCL        VAR(&SRCFILELIB) TYPE(*CHAR) LEN(10)
             DCL        VAR(&SRCCHGDATE) TYPE(*CHAR) LEN(13)
             DCL        VAR(&SRCMBRTXT) TYPE(*CHAR) LEN(50)
       /*  Split-up qualified names (only the ones necessary). */
             CHGVAR     VAR(&SRCFILE) VALUE(%SST(&QSRCFILE 1 10))
             CHGVAR     VAR(&SRCFILELIB) VALUE(%SST(&QSRCFILE 11 10))
       /*  Set/retrieve source info. */
             IF         COND(&SRCMBR = '*PGM') THEN(CHGVAR +
                          VAR(&SRCMBR) VALUE(&QPGM))
             RTVMBRD    FILE(&SRCFILELIB/&SRCFILE) MBR(&SRCMBR) +
                          RTNLIB(&SRCFILELIB) +
                          SRCCHGDATE(&SRCCHGDATE) TEXT(&SRCMBRTXT)
             IF         COND(&PGMTEXT = '*SRCMBRTXT') THEN(CHGVAR +
                          VAR(&PGMTEXT) VALUE(&SRCMBRTXT))
             CHGVAR     VAR(&QSRCFILE) VALUE(&SRCFILE *CAT &SRCFILELIB)
       /*  Set public authority. */
             IF         COND(&AUT = '*LIBCRTAUT') THEN(DO)
               RTVLIBD    LIB(%SST(&QPGM 11 10)) CRTAUT(&AUT)
               IF         COND(&AUT = '*SYSVAL') THEN(RTVSYSVAL +
                            SYSVAL(QCRTAUT) RTNVAR(&AUT))
             ENDDO
       /*  Override files and call CRTMIPGM1. */
             OVRPRTF    FILE(QSYSPRT) SPLFNAME(%SST(&QPGM 1 10))
             OVRDBF     FILE(QMISRC) TOFILE(&SRCFILELIB/&SRCFILE) +
                          MBR(&SRCMBR)
             CALL       PGM(CRTMIPGM1) PARM(&QPGM &PGMTEXT &QSRCFILE +
                          &SRCMBR &SRCCHGDATE 'QSYSPRT   *LIBL     ' +
                          &AUT &OPTIONS &REPLACE)
             DLTOVR     FILE(*ALL)
             SNDPGMMSG  MSGID(CPC0815) MSGF(QCPFMSG) MSGDTA(&QPGM) +
                          MSGTYPE(*COMP)
  ENDPGM
RPG: CRTMIPGM1
     FQMISRC  IF  F      92            DISK
      *
      *
     E                    SA       9999 80
      *
      *
     IQMISRC  NS
     I                                        1  12 SEQDAT
     I                                       13  92 SRCDTA
      *
      *
     IPOPTDS      DS
     I                                    B   1   20P#OPTS
     I                                        3 167 POPTS
      *
     IOPTDS       DS
     I                                        1  11 REPLAC
     I                                       12 176 OOPTS
      *
     IFIELDS     IDS
     I                                    B   1   40SRCLEN
     I I            1                     B   5   80PAGNBR
     I                                    B   9  120#OPTS
      *
     C           *ENTRY    PLIST
     C                     PARM           QPGM   20
     C                     PARM           PGMTXT 50
     C                     PARM           QSRCF  20
     C                     PARM           SRCMBR 10
     C                     PARM           SCHGDT 13
     C                     PARM           QPRTF  20
     C                     PARM           PUBAUT 10
     C                     PARM           POPTDS
     C                     PARM           PREPLC  1
      *
      *
      *  Read through the source file putting the source
      *  records in the source array SA, which will be
      *  passed to the API.
     C                     MOVEL*ZEROS    I       50
     C                     READ QMISRC                   LR
     C           *INLR     DOWEQ'0'
     C                     ADD  1         I
     C                     MOVELSRCDTA    SA,I
     C                     READ QMISRC                   LR
     C                     ENDDO
      *
      *
      *  Set source length.
     C           I         MULT 80        SRCLEN
      *
      *
      *  Set option template. Move options from incoming
      *  parm (POPTDS) to template parm passed to API
      *  (OPTDS).
     C           PREPLC    IFEQ '1'
     C                     MOVEL'*REPLACE'REPLAC
     C                     ELSE
     C           '*NO'     CAT  'REPLACE' REPLAC
     C                     ENDIF
      *
     C           P#OPTS    MULT 11        LEN     50
     C           LEN       SUBSTPOPTS:1   OOPTS
      *
     C           P#OPTS    ADD  1         #OPTS
      *
      *
      *  Call API.
     C                     CALL 'QPRCRTPG'
     C                     PARM           SA
     C                     PARM           SRCLEN
     C                     PARM           QPGM
     C                     PARM           PGMTXT
     C                     PARM           QSRCF
     C                     PARM           SRCMBR
     C                     PARM           SCHGDT
     C                     PARM           QPRTF
     C                     PARM           PAGNBR
     C                     PARM           PUBAUT
     C                     PARM           OPTDS
     C                     PARM           #OPTS
      *
      *
     C                     RETRN
As an Amazon Associate we earn from qualifying purchases.