IBM Support

PK97320: PACK and UNPK assembler instruction syntax errors in LPEX editor

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Receiving errors on the PACK and UNPK instructions in the LPEX
    editor when editing Assembler source files.
    
    I noted the following errors in the LPEX editor for assembler
    PACK and UNPK assembler instructions.
    
    The following examples have been in production for many years
    and do work as expected but for some reason the LPEX editor
    does not like them.
    
    
    MIDTRERR EQU   *
             MVC   MESSAGE,MIDMSG1              MOVE DD NAME TO MSG
             MVC   MESSAGE+44(8),DD4MIDT        MOVE DD NAME TO MSG
             UNPK  MESSAGE+31(7),EIBRESP        UNPK EIBRESP TO MSG
             MVC   MESSAGE+38(1),EIBRESP+3      .
             NC    MESSAGE+31(8),ZEROFOXS       .
             TR    MESSAGE+31(8),HEXCHARS       MAKE DISPLAYABLE
             UNPK  MESSAGE+59(16),WRKACCT       UNPK ACCT TO MSG
    
    Syntax: UNPK D1(L1,B1),D2(L2,B2).
    
    Error:  Incorrect operand: MESSAGE+59(16).
    
    DOORBV   DS    0H
                                                             INT201
             CLI   BIT102L,X'00'          DID WE GET A CPN?
                                                             INT201
             BNH   DORETURN               NO, WERE DONE
                                                             RST404
             MVI   J2CPNIND,C'1'          SET CPN INDICATOR TO 1
                                                             INT201
             PACK  J2ORIGAC,BIT102F(16)   MOVE BIT102 TO ORIGACCT
                                                            INT201
    Syntax: PACK D1(L1,B1),D2(L2,B2).
    
    Error:  Incorrect operand: BIT102F(16).
    
    
    According to our IBM documentation 16 is a valid operand length
    for the instructions.
    
    It seems some valid statements are being flagged as errors.
    Client is using the PACK and UNPACK instructions with an offset
    and length.
    When he specifies a length of 16 (double word), the statement
    is flagged as an error.  If he changes it to a value less than
    16 (such as 15), the error goes away.
    
    Explaination:
    
    The assembler parser is not handling machine instructions which
    have parameters whose format is D1(L1,B1).
    
    This is a valid bug, which has existed since the parser was
    created.
    UNPK and PACK are only two examples, this bug affects all
    instructions which support this type of parameter.
    
    So for now, a fix could be provided in next release after
    RDz 7.5.
    

Local fix

Problem summary

  • Machine instructions which specified a length of 16 caused the
    syntax checker in System z LPEX to produce an error.
    For example the following statement:
    UNPK  MESSAGE+59(16),WRKACCT
    results in the error:
    Syntax: UNPK D1(L1,B1),D2(L2,B2).
    Error:  Incorrect operand: MESSAGE+59(16).
    

Problem conclusion

  • The assembler syntax checker was not correctly validating length
    and displacement for machine instructions.
    The problem listed in this APAR has been resolved with
    IBM Rational Developer for System z V7.6.0.1 Fix Pack which
    is available from the Recommended Fixes support download page:
    http://www-1.ibm.com/support/docview.wss?rs=2294&uid=swg27006335
    

Temporary fix

Comments

APAR Information

  • APAR number

    PK97320

  • Reported component name

    RATL DEV FOR SY

  • Reported component ID

    5724T0700

  • Reported release

    751

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-09-28

  • Closed date

    2009-12-16

  • Last modified date

    2009-12-16

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    RATL DEV FOR SY

  • Fixed component ID

    5724T0700

Applicable component levels

  • R760 PSY

       UP

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSJK49","label":"IBM Developer for z Systems"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.5.1","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
27 October 2020