× 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: Where's the RPG code in the IFS example? WAS: Having problemsac cessing IFS from RPGIV
  • From: "L. S. Russell" <leslier@xxxxxxxxxx>
  • Date: Fri, 14 Jan 2000 14:02:15 -0600

There are some pretty decent examples of this "new" style of RPG on my
site.
http://www.springfieldtn.net/users/leslier/downloads/smbex.zip

Oh, btw as Barbara has already stated she sent me her article on C data
types. Here's the link http://www.springfieldtn.net/hintsandtips.html

Thanks to Barbara! 
If anyone has any other hints and tips to submit I will gladly post
them.


> In the interim, it is actually quite easy to write RPG IV code that looks
> familiar to RPG III's style.  Instead of writing  things in the "function"
> style, use a more traditional "call" style, so that eval
> result=function(parm1:parm2:parm3)   becomes callp
> function(parm1:parm2:parm3:result).  The definitions will continue to look
> weird until we get used to the D specs, but you can hide those definitions
> in a /COPY member so that your code looks something like this:
> /copy funcdefn
> ...
> callp function(...)
> 
> Which isn't so far from
> /copy subrdefn
> ...
> movel xxx parm1
> exsr subroutine


> As for the specific examples of the C function calls, they can be found in
> the Unix-type API manual.  There's some initial confusion trying to mentally
> convert the C data types into RPG data types; Barbara Morris posted this
> table a while back:
> 
> Even though int * is a pointer, it can be thought of as an int
> passed by reference, so it's better to prototype it in RPG as
> an int passed by reference.  My own rules for converting C
> prototypes to RPG prototypes are as follows:
> 
>       C         |       RPG
> ----------------|-------------------------------------------
>   int, long     |    10i 0 value
>   unsigned int  |    10u 0 value
>   double        |     8f   value
>   int *         |    10i 0
>   unsigned *    |    10u 0
>   double *      |     8F
>   char *        |      *   value options(*string)
>   void *        |      *   value
>                 | OR       LIKE(someStructure)
>   XXX           |          value LIKE(XXX)
>   XXX *         |          LIKE(XXX)
>   ... (ellipsis)| figure out what the ... stands for
>                 | and make one or more prototypes to
>                 | match the various combinations, possibly
>                 | with OPTIONS(*NOPASS) on some parms
> 
> Where XXX is some struct/union, defined in RPG as a data structure.
> 
> This part is for those advanced folks who know C and are creating
> RPG prototypes for homegrown C functions (i.e. not part of the C
> runtime):
>   Also, watch out for C's widening rules.  Even though
>   short = 5I 0, when it comes to passing parameters by value,
>   short=10i 0 and char=10u 0.  These differences don't always
>   cause a problem since the use of registers to pass parameters
>   can cause these differences to be hidden.  Luckily, the C
>   runtime rarely if ever has short or even char parameters
>   passed by value.  Unfortunately, C doesn't ALWAYS widen - it
>   depends on the absense of a #pragma nowiden.
>   (We have some help for this widening problem coming in a
>   future release of RPG)
> 
> Buck Calabro
> Aptis; Albany, NY
> 
> > -----Original Message-----
> > From: boothm@earth.Goddard.edu
> > Sent: Friday, January 14, 2000 12:20 AM
> > To:   RPG400-L@midrange.com
> > Subject:      Re: Where's the RPG code in the IFS example? WAS: Having
> > problems ac cessing IFS from RPGIV
> >
> > Buck, I understand what you are saying.  I even agree with it.  The issues
> >
> > are this though, imho.  The laborious and old RPG code with the left-side
> > indicators is RPG.  RPG programmers might not like the code but they
> > understand it and if they don't,  they know where to look it up.  RPG
> > professionals can be expected to deal with it.  The quasi-C++ code though
> > could show up in any RPG shop any day and most all of the RPG programmers
> > I know would not know what is happening, where to look it up, or even who
> > to ask for help.  I am not denying that this new C++ dialect  is valid RPG
> >
> > code.  What I  am suggesting is that Toronto is not-so-slowly walking RPG
> > away from the RPG programmers out there.  I think the pursuit of the C++
> > programming standard is really wrong because the ones that like and
> > understand C++ are going to code in C++;  they'll never be applying for
> > jobs in AS/400 shops.
> >
> +---
> | This is the RPG/400 Mailing List!
> | To submit a new message, send your mail to RPG400-L@midrange.com.
> | To subscribe to this list send email to RPG400-L-SUB@midrange.com.
> | To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
> | Questions should be directed to the list owner/operator: david@midrange.com
> +---

--
L. S. Russell Programmer/Analyst
Datrek Professional Bags, Inc.
2413 Industrial Drive
Springfield, TN. 37172
mailto:leslier@datrek.com
http://www.datrek.com
--
+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-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 ...

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.