×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




In this case, the parm lengths and definition location in the caller program
is the problem.  In the RPG program static storage allocation, the MSDT$E
field is defined as some length like 33 in the caller program, field $RTC$E
is defined immediately after it with a length of at least 6.

When this routine is called, the caller passes a space pointer to MSDT$E at
some address and the caller also passes a space pointer to field $RTC$E.
For this explanation, assume that the location of MSDT$E is decimal 1001 and
the location of $RTC$E is decimal 1034.

Neither field MSDT$E nor field $RTC$E occupies space in the callee program,
they are used by reference.  Since it is defined as a *ENTRY parameter, the
callee length should match the caller length definition.  When they don't
match, this is the AS/400 version of a memory leak - you can change memory
that doesn't belong to you.  I have spent days trying to find these things.

I am feeling like this is a very weak explanation of the problem.  If you
can't figure it out from this poor explanation, please drop me another note.

Richard Jackson
mailto:richardjackson@richardjackson.net
www.richardjacksonltd.com
Voice: 1 (303) 808-8058
Fax:   1 (303) 663-4325

-----Original Message-----
From: owner-rpg400-l@midrange.com [mailto:owner-rpg400-l@midrange.com]On
Behalf Of Silvio Santos
Sent: Wednesday, July 12, 2000 5:01 AM
To: RPG400-L@midrange.com
Subject: RPG/400 pgm strange behaviour




I have a program (RPG/400) that checks if some record exists and return.

These two filds are *ENTRY parms of the PGM:
MSDT$E - length 256
$RTC$E (*FOUND or *ERROR) - length 8A


The condition used is like this:

*IN,96    IFEQ '0'
          MOVEL'*FOUND'  $RTC$E
          MOVELMSDTOH  MSDT$E
          ELSE
          MOVEL'*ERROR'  $RTC$E
          ENDIF

It works fine, excepts for one thing: if the condition is true, when it
moves
the MSDTOH content to MSDT$E, it erases the $RTC$E field. For the other
hand,
when the first move is done, the '*Found' is placed in the 34th position of
the
field MSDT$E.

Is there any restriction about entry parms lenght ?
How can I resolve this?

Thanks
                     ,,,,,,
                   (o o)
-----------------------oOO--(_)--OOo------------------------
Silvio Santos                                BRAIN Portugal
Tel:    +351 252 248-120             Av. Joao Canavarro, 305
Fax:    +351 252 248-111            4480-668 Vila do Conde
                                                          Portugal
Email: silvio.santos@brainag.com
Web-Page: www.brainag.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
+---

+---
| 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 ...

Follow-Ups:
Replies:

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

This mailing list archive is Copyright 1997-2026 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.