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


ifdef::env-github,rspecator-view[]
'''
== Comments And Links
(visible only on this page)

include::comments-and-links.adoc[]
endif::env-github,rspecator-view[]
