Calls to CEESCOL in PL/I

*PROCESS MACRO;
 /*Module/File Name: IBMSCOL                         */
 /****************************************************/
 /* Example for callable service CEESCOL             */
 /* Function: Compare two character strings and      */
 /*  print the result.                               */
 /****************************************************/

 PLISCOL: PROC OPTIONS(MAIN);

 %INCLUDE CEEIBMAW; /* ENTRY defs, macro defs for LE */
 %INCLUDE CEEIBMCT; /* FBCHECK macro, FB constants   */
 %INCLUDE CEEIBMLC; /* Locale category constants     */

 /* CEESCOL service call arguments */
 DCL STRING1 CHAR(256) VARYING;/* first string       */
 DCL STRING2 CHAR(256) VARYING;/* second string      */
 DCL RESULT_SCOL BIN FIXED(31);/* result of compare  */

 DCL 01 FC,                        /* Feedback token */
        03 MsgSev    REAL FIXED BINARY(15,0),
        03 MsgNo     REAL FIXED BINARY(15,0),
        03 Flags,
           05 Case      BIT(2),
           05 Severity  BIT(3),
           05 Control   BIT(3),
        03 FacID     CHAR(3),         /* Facility ID */
        03 ISI      /* Instance-Specific Information */
                     REAL FIXED BINARY(31,0);

   STRING1 = '12345a789';
   STRING2 = '12346$789';
   CALL CEESCOL( *, STRING1, STRING2, RESULT_SCOL,FC);

   /* FBCHECK macro used (defined in CEEIBMCT) */
   IF FBCHECK( FC, CEE3T1 ) THEN
     DO;
       DISPLAY ('CEESCOL not completed '||FC.MsgNo );
       STOP;
     END;

   SELECT;
   WHEN( RESULT_SCOL < 0 )
     PUT SKIP LIST(
       '"firststring" is less than "secondstring" ');
   WHEN( RESULT_SCOL > 0 )
     PUT SKIP LIST(
     '"firststring" is greater than "secondstring" ');
   OTHERWISE
     PUT SKIP LIST( 'Strings are identical' );
   END;  /* END SELECT */

 END PLISCOL;