Regarding CALL's....
There's no reason you'd need to find the CALLed program to create a
prototype.  Everything you need is already available in the calling
program: called program name, number of parameters, and the size and
type of each parameter.
In fact Linoma's tool has an option to covert CALL/CALLB to CALLP.
I highly recommend Linoma's tool.  IIRC back in 2006 it was only $500
for a P10 box.
Back in 2006, when I worked at a place that had the Linoma tool, I
posted a list of the options it as.  I have reposted them in the past,
so here they are again...
http://archive.midrange.com/rpg400-l/200609/msg00359.html
                         RPG Wizard by Linoma (RPGWIZ)
Type choices, press Enter.
From file  . . . . . . . . . . .   QRPGLESRC     Name, QRPGSRC,QRPGLESRC
  Library  . . . . . . . . . . .     *LIBL       Name, *LIBL
    From member  . . . . . . . . . .                 Name, generic*, *ALL
    From type  . . . . . . . . . . .   *RPG4         RPG, RPT, RPG38,RPT38...
To file  . . . . . . . . . . . .   QRPGLESRC     Name, QRPGLESRC,*FROMFILE
  Library  . . . . . . . . . . .     *FROMLIB    Name, *FROMLIB, *LIBL
To member  . . . . . . . . . . .   *FROMMBR      Name, *FROMMBR
Replace existing To member(s)  .   *YES          *NO, *YES
Target OS/400 release  . . . . .   *CURRENT      *CURRENT, VxRx
Format of calculation specs  . .   *FREE         *FREE, *FIXED
Examine field attributes . . . .   *YES          *NO, *YES
Expand copy members  . . . . . .   *NO           *NO, *YES
Redefine data structures . . . .   *YES          *NO, *YES
Redefine *LIKE DEFN fields . . .   *YES          *NO, *YES
Redefine calc. defined fields  .   *YES          *NO, *YES
Convert left hand indicators . .   *YES          *NO, *YES
Convert opcodes to BIFs  . . . .   *YES          *NO, *YES
Convert key lists (KLIST)  . . .   *YES          *NO, *YES, *YES2
Insert file I/O BIFs . . . . . .   *YES          *NO, *YES, *YES2
Convert ADDs/SUBs to EVALs . . .   *YES          *NO, *YES, *YES2
Convert Z-ADDs/Z-SUBs to EVALs     *YES          *NO, *YES, *YES2
Convert MULTs to EVALs . . . . .   *YES          *NO, *YES, *YES2
Convert DIVs to EVALs  . . . . .   *YES          *NO, *YES, *YES2
Convert MOVE(L)s having *BLANK     *EVAL         *NO, *EVAL, *CLEAR
Convert MOVE(L)s having *ZERO  .   *EVAL         *NO, *EVAL, *CLEAR
Convert MOVEs having data  . . .   *EVAL         *NO, *EVAL
Convert MOVELs having data . . .   *EVAL         *NO, *EVAL
Convert MOVEA operations . . . .   *YES          *NO, *YES
Convert CASxx operations . . . .   *YES          *NO, *YES
Convert CAT operations . . . . .   *YES          *NO, *YES, *YES2
Convert DOs to FORs  . . . . . .   *YES          *NO, *YES
Convert LOOKUP operations  . . .   *YES          *NO, *YES
Convert SCAN operations  . . . .   *YES          *NO, *YES
Convert *ENTRY PLIST . . . . . .   *YES          *NO, *YES, *YES2
Convert Subroutines to Procs . .   *NO           *NO, *YES
Convert CALLs and CALLBs . . . .   *YES          *NO, *YES, *YES2
Convert GOTO operations  . . . .   *YES          *NO, *YES
Compress expressions . . . . . .   *YES          *NO, *YES
Highlight comments . . . . . . .   *YES          *NO, *YES
Fixed-form comment designator  .   *SLASHES      *LEAVE, *ASTERISK,*SLASHES
Comment specification types  . .   *REMOVE       *LEAVE, *REMOVE
Comment designator on blanks . .   *REMOVE       *LEAVE, *REMOVE
Case for specification types . .   *LOWER        *LEAVE, *LOWER, *UPPER
Case for unchanged logic . . . .   *MIXED2       *LEAVE, *LOWER,*UPPER...
Case for changed and new logic     *MIXED2       *LOWER, *UPPER,*MIXED...
Case for in-line comments  . . .   *LOWER        *LEAVE, *LOWER, *UPPER
Case for right-hand comments . .   *LOWER        *LEAVE, *LOWER, *UPPER
Free-form indent nested logic  .   *INDENT2      *LEAVE, *INDENT0,*INDENT1...
Document nested logic  . . . . .   *NO           *NO, *YES
Source date on converted lines     *KEEP         *KEEP, *TODAY, *ZEROS
Charles Wilt
On Wed, Jul 29, 2009 at 6:52 AM, Vern Hamberg<vhamberg@xxxxxxxxxxx> wrote:
John
This is where Linoma's product shines - it changes MOVEs to EVALs -
always has - and that makes going to free form pretty painless. I've not
seen its conversion to free-form, but I have to believe it is similarly
more functional.
This is kind of frustrating - most MOVE operations are pretty easily
replaced with some kind of EVAL - IBM know best what these can be. Wish
they'd done more with the wizard.
Another item that does not convert is regular CALLs - these work nicely
as CALLP, but you have to have a prototype. That information to use for
creating that prototype is not always available directly in RPG source,
I believe. So it'd take finding the actual program, maybe, and
extracting from its body the parameter data types. Or prompt us for
those values. Now that'd be a huge help.
As an Amazon Associate we earn from qualifying purchases.