Specifying the parameters to a procedure with a PLIST makes that procedure unusable from free-format code. Instead, prototypes should
be used - both when defining a procedure and when calling it. They have the additional benefit of allowing you to use keywords such as
Const to better-specify how parameters are passed to a procedure. Further, the use of a prototype instead of a PLIST is
cleaner and more consistent with the code required for subprocedures.
Noncompliant code example
      * Noncompliant; PLIST specified
     C     *ENTRY        PLIST
     C                   PARM                    ZipCode           5 0
     C                   PARM                    City             20
...
      * Noncompliant; PLIST used in call
     C                   CALL      'OTHERPROG'
     C                   PARM                    ZipCode
     C                   PARM                    City
Compliant solution
     D MYPROG          PR
     D  ZipCode                       5I   Const
     D  City                         20A   Const
     D MYPROG          PI
     D  ZipCode                       5I   Const
     D  City                         20A   Const
...
     D OTHERPROG       PR                  ExtPgm('OtherProgram')
     D  ZipCode                       5I   Const
     D  City                         20A   Const
      /free
        OTHERPROG(ZipCode:City);
      /end-free