× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: Free OS/400
  • From: "James W. Kilgore" <eMail@xxxxxxxxxxxxxxxxxxx>
  • Date: Mon, 09 Jul 2001 14:35:30 -0700
  • Organization: Progressive Data Systems, Inc.

Joe,

Did I really say simple? :)  Mercy!

I just did an EDTLIBL on my system and reduced my library list to
wyatterppb, qgpl and qtemp, did a change curlib to wyatterppb and
compiled GLNOWRKX.

It compiled without a hitch and scanning the source member shows field
CMDTXT is defined in the display file GLNODSPF.  Make sure that you are
compiling with CRTRPTPGM.  Although I don't use the auto report feature,
by compiling them this way it will sort the source in the right place. 
For example, /COPY member $BLDCMDTXT contains a subroutine, a couple of
data structures and an array.  I think that if you use CRTRPGPGM it will
not put the data structures in the 'I' spec region and you will get two
errors: entry out of sequence and undefined field.

I use the WORKSTN status feedback within the /COPY member $TIMEDOUT to
test of a workstation has timed out to permit a graceful (seton LR) exit
and to test if a function key was pressed.

I will admit that I do a lot of stuff with /COPY, but I don't perform
display I/O within them.  At least not that I recall.  I take that back,
when someone does a 'position to' I perform a binary halving of the
subfile entries.

Maybe this is a bad habit, but I compile all display formats with
DFRWRT(*YES) which, AFAIK, requires the use of the INVITE keyword.  I've
been doing it so long this way it's just habit.  I also break a panel
down into components, title, body (which may be a single record or
SFL/SFLCTL combo), function keys and error messages.

I also use a shared ODP for display files and some components are used
by multiple programs.  For example, GLNOEDT and GLNOADD use the same
screen components.  I don't believe that I have any named record
actually have the same name in two display files, yet have their
contents be different.  When writing the panels, I would ask myself
"Will I have any problems if I took all my display file source and made
one huge member out of it?"  So although both GLNODSPF and ZIPCDSPF
contain record CMDDSP, the source for record CMDDSP are identical.

It would not be difficult to consolidate the components and make what
few changes would be required to the RPG programs.

I would be happy with a +90% conversion.  As I said before, I've been at
this too long to worry about having to make minor adjustments to each
and every program.  As a matter of fact, since I have certain
programming rules, I could write a conversion plug-in to handle my
particular "style".

Don't worry about the time frame, the fact that you'll even touch it
with a pole shorter than 10' already has me impressed ;-)

J. Kilgore

Joe Pluta wrote:
> 
> James, I don't know how quickly this can be done.  Your "simple" system
> consists of over 100 source members, including dozens of /COPY members.  I
> tried to compile them, and source members GLNOADDX, GLNOEDTX and GLNOINQX
> all failed compile.  Also, you use the workstation INFDS, which as you can
> imagine is going to be a bit difficult to implement.  However, from what I
> can tell of the programs, none seem to actually use the INFDS fields, even
> though they /COPY them in.
> 
> I will say this: copy members are brutal on all types of conversion
> programs, especially if you have logic in them.  You have to decide how to
> handle the possibility of requiring two different changes depending on the
> program including the /COPY.  For example, if you /COPY in the line
> "EXFMTRCD01" for two different displays, it could be problematic as to how
> to replace that code.  I have similar issues with using a /COPY for *INZSR.
> 
> At the same time, your display files are rather unusual.  Two of them have
> over 20 separate record formats, including multiple error message subfiles
> and windows.  Another uses the INVITE keyword, which I don't support.  A bit
> beyond the pale of a "simple" application.
> 
> All that said, it SEEMS that your "simple" system might still be able to run
> through the converter, since you've not done anything particularly
> outlandish.  I just need to have versions that compile.  The three programs
> that failed all failed because the fields C$INPT and CMDTXT were not
> defined.
> 
> I'm out of town tomorrow conferring with potential business partners, so I
> won't be able to touch this until Wednesday or Thursday.
>
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.