Calls to CEESETL and CEEQRYL in PL/I

*PROCESS MACRO;
 /*Module/File Name: IBMSETL                         */
 /****************************************************/
 /* Example for callable service CEESETL             */
 /* Function: Set all global locale environment      */
 /*  categories to country. Query one category.      */
 /****************************************************/

 PLISETL: PROC OPTIONS(MAIN);

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

 /* CEESETL service call arguments */
 DCL LOCALE_NAME CHAR(14) VARYING;

 /* CEEQRYL service call arguments */
 DCL LOCALE_NAME_TIME CHAR(256) VARYING;
 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);
   /* init locale name with IBM default for Sweden  */
   LOCALE_NAME = 'Sv_SE.IBM-1047';

   /* use LC_ALL category const from CEEIBMLC */
   CALL CEESETL ( LOCALE_NAME, LC_ALL, FC );

   /* FBCHECK macro used (defined in CEEIBMCT) */
   IF FBCHECK( FC, CEE2KE ) THEN
     DO;  /* invalid locale name */
       DISPLAY ( 'Locale LC_ALL Call '||FC.MsgNo );
       STOP;
     END;
   /* retrieve active locale for LC_TIME category */
   /* use LC_TIME category const from CEEIBMLC */
   CALL CEEQRYL ( LC_TIME, LOCALE_NAME_TIME, FC );

   IF FBCHECK( FC, CEE000 ) THEN
     DO;  /* successful query, check category name */
       IF LOCALE_NAME_TIME ^= LOCALE_NAME THEN
         DO;
           DISPLAY ( 'Invalid LOCALE_NAME_TIME ' );
           STOP;
         END;
       ELSE
         DO;
           PUT SKIP LIST('Successful query LC_TIME',
                          LOCALE_NAME_TIME);
         END;
     END;
   ELSE
     DO;
       DISPLAY ( 'LC_TIME Category Call '||FC.MsgNo );
       STOP;
     END;
 END PLISETL;