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



After reviewing the generated MI, I found that I was right in my
assumption:

When a piece of code like this is specified:

0001 C                     MOVE 'CM'      FIELDA  2
0002 C                     MOVE 'ID'      FIELDB  2
0003 C                     MOVE '11'      FIELDC  2
0004 C           FIELDA    COMP FIELDB                   44
0005 C     N44   FIELDB    COMP FIELDC                   44
0006 C      44   FIELDA    IFEQ 'CM'
0007 C                     MOVEL'PASSED'  MSG    10
0008 C                     ELSE
0009 C                     MOVEL'FAILED'  MSG
0010 C                     ENDIF
0011 C           ENDPGM    TAG
0012 C                     MOVEL*ON       *INLR

When Indicator 44 is *OFF, when attempting to execute line 6 (the IF
statement) control branches to the ENDIF (line 10) statement, NOT the
ELSE statement (line 8).  If this were rewritten to follow the logic of
the indicator, it might appear (albeit ugly) as follows:

0001 C                     MOVE 'CM'      FIELDA  2
0002 C                     MOVE 'ID'      FIELDB  2
0003 C                     MOVE '11'      FIELDC  2
0004 C           FIELDA    COMP FIELDB                   44
0005 C     N44   FIELDB    COMP FIELDC                   44
0006 C           *IN44     IFEQ *ON
0007 C           FIELDA    IFEQ 'CM'
0008 C                     MOVEL'PASSED'  MSG    10
0009 C                     ELSE
0010 C                     MOVEL'FAILED'  MSG
0011 C                     ENDIF
0012 C                     ENDIF
0013 C           ENDPGM    TAG
0014 C                     MOVEL*ON       *INLR

The two code examples produce identical results.

Bob Cozzi
cozzi@rpgiv.com
Visit the on-line  Midrange  Developer  forum at: http://www.rpgiv.com


> -----Original Message-----
> From: rpg400-l-admin@midrange.com [mailto:rpg400-l-admin@midrange.com]
On
> Behalf Of Peter Dow
> Sent: Thursday, January 10, 2002 8:55 AM
> To: rpg400-l@midrange.com
> Subject: Re: Sanity check
>
> Hi Steven,
>
> You're right, I missed that CLEAR stmt. Something about looking at
that code
> triggered a memory of some program where the situation I described
caused a
> problem, and that's apparently all my old grey cells could see.  Or
maybe
> all those grey cells are leaking out and that's why my hair is grey...
>
> Regards,
> Peter Dow
> Dow Software Services, Inc.
> 909 425-0194 voice
> 909 425-0196 fax
>
> ----- Original Message -----
> From: <steven.ryan@denso.com.au>
> To: <rpg400-l@midrange.com>
> Sent: Wednesday, January 09, 2002 7:55 PM
> Subject: Re: Sanity check
>
>
> >
> > 'Fraid not Peter
> >
> > Thre first line of Code clears MEMO unconditionally.  Therefore, if
CM
> > isn't 'CM'  or 'DM' then Memo WILL be blank.
> >
> > It's such an UGLY program that I needed to look a couple of times
before I
> > convinced myself of this.
> >
> >
> >
> >                     "Peter Dow"
> >                     <pcdow@yahoo.com>        To:
> <rpg400-l@midrange.com>
> >                     Sent by:                 cc:
> >                     rpg400-l-admin@mi        Subject:     Re: Sanity
check
> >                     drange.com
> >
> >
> >                     10/01/02 08:45
> >                     Please respond to
> >                     rpg400-l
> >
> >
> >
> >
> >
> >
> > Hi David,
> >
> > Actually, if CM is not 'CM' and not 'DM', MEMO and PONO will not be
> > modified.  That is to say, the first time through (assuming this is
the
> > only
> > code that modifies MEMO and PONO), they would remain blank.  But if
one
> > pass
> > sets MEMO = '* CREDIT', and the next pass has CM not = 'CM' or 'DM',
then
> > MEMO will still be '* CREDIT'.
> >
> >
> > >
> > >
> > >             Factor1   OpCodFactor2   ResultLenDHHiLoEQ
> > > C                     CLEARMEMO
> > > C           CM        COMP 'CM'                     44 On if
CM='CM'
> > > C  N44      CM        COMP 'DM'                     44 On if
CM='DM'
> > > C   44      CM        IFEQ 'CM'
> > > C                     MOVEL'* CREDIT'MEMO    8
> > > C                     MOVE *BLANKS   PONO
> > > C                     ELSE
> > > C                     MOVE *BLANKS   PONO
> > > C                     MOVEL'*  DEBIT'MEMO    8
> > > C                     END
> > >
> > >
> >
> > _________________________________________________________
> > Do You Yahoo!?
> > Get your free @yahoo.com address at http://mail.yahoo.com
> >
> > _______________________________________________
> > This is the RPG programming on the AS400 / iSeries (RPG400-L)
mailing list
> > To post a message email: RPG400-L@midrange.com
> > To subscribe, unsubscribe, or change list options,
> > visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
> > or email: RPG400-L-request@midrange.com
> > Before posting, please take a moment to review the archives
> > at http://archive.midrange.com/rpg400-l.
> >
> >
> >
> >
> > _______________________________________________
> > This is the RPG programming on the AS400 / iSeries (RPG400-L)
mailing list
> > To post a message email: RPG400-L@midrange.com
> > To subscribe, unsubscribe, or change list options,
> > visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
> > or email: RPG400-L-request@midrange.com
> > Before posting, please take a moment to review the archives
> > at http://archive.midrange.com/rpg400-l.
>
>
> _________________________________________________________
> Do You Yahoo!?
> Get your free @yahoo.com address at http://mail.yahoo.com
>
> _______________________________________________
> This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing
list
> To post a message email: RPG400-L@midrange.com
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
> or email: RPG400-L-request@midrange.com
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.




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.