         MACRO                                                          00050037
         IDACBPRC &PROC=,&MF=                                           00100037
.* FUNCTION -  THIS MACRO PROCESSES THE NIB KEYWORD PROC.  IT IS CALLED 00150037
.*             BY IDACBNIB.  IT VALIDITY CHECKS THE OPTIONS SPECIFIED   00200037
.*             BY THE USER ON GENCB, MODCB, OR TESTCB FOR PROC.  IT     00250037
.*             CHECKS FOR MUTUALLY EXCLUSIVE OPTIONS SPECIFIED AND      00300037
.*             ISSUES ERROR MESSAGES VIA IDAERMAC.  IF THE OPTIONS ARE  00350037
.*             VALID, IDACBPRC SETS VALUES IN VARIOUS GLOBAL ARRAYS     00400037
.*             TO BE USED BY IDACB2 TO BUILD A PARAMETER LIST OF        00450037
.*             ARGUMENT CONTROL ENTRIES FOR THE CONTROL BLOCK           00500037
.*             MANIPULATION MODULE TO BE USED AT EXECUTE TIME.          00550037
.*             IT CALLS IDACB3 TO SET THE ELEMENT TYPE CODE AND THE     00600037
.*             KEYWORD TYPE CODE FOR PROC.                              00650037
.*                                                                      00700037
.* GLOBALS                                                              00750037
         GBLB  &IDACB01                ERROR SWITCH                     07050037
         GBLA  &IDAENO                 NUMBER OF ELEMENTS               07100037
         GBLA  &IDAELEN(50)            ELEMENT FIELD LENGTH ARRAY       07150037
         GBLC  &IDAVALC(50)            ELEMENT CHARACTER VALUE ARRAY    07200037
         GBLC  &IDAPRC2                PROC BIT STRING EXTENSION        07250037
.* LOCALS                                                               07260037
         LCLA  &I,&A,&B,&C             WORK VARIABLES                   07300037
         LCLB  &MSG,&TRANS,&CONT,&BLOCK,&NLGIN   PROC CODES      X03004 07350037
         LCLB  &LGIN,&LGOUT,&NLGOUT,&NCNFTXT     PROC CODES      X03004 07400037
         LCLB  &CONFTXT,&TMFLL,&NTMFLL,&ERPIN    PROC CODES      X03004 07450037
         LCLB  &NERPIN,&ERPOUT,&NERPOUT          PROC CODES      X03004 07500037
         LCLB  &NMONITR,&MONITOR,&NELC,&ELC      PROC CODES      X03004 07550037
         LCLB  &NEIB,&EIB,&TIMEOUT,&NTIMOUT      PROC CODES      X03004 07600037
         LCLB  &CA,&CS,&RPLC,&KEEP,&TRUNC        PROC CODES    @Z40BHUC 07650037
         LCLB  &NBINARY,&BINARY                  PROC CODES      X03004 07700037
         LCLB  &NDFASYX,&DFASYX,&NRESPX,&RESPX   PROC CODES     X3004BS 07750037
         LCLB  &SYSRESP,&APLRESP                 PROC CODES     G40AKCM 07760040
         LCLB  &NODRESP,&ORDRESP                 PROC CODES     G40AKCM 07770040
         LCLC  &Z16                     UNUSED PORTION OF BIT STRING    07800037
&Z16     SETC  '0000000000000000'    INITIALIZE CONSTANT        X04SVHS 07850037
.********************************************************************** 07900037
&I       SETA  0                     ZERO SUBPARM COUNT          X03004 07950037
.P000100 ANOP                                                    X03004 08000037
&I       SETA  &I+1                  BUMP SUBPARM COUNT          X03004 08050037
         AIF   (&I GT N'&PROC).P000200                           X03004 08100037
.*                                      HAVE ALL OPTIONS BEEN CHECKED   08110037
&MSG     SETB  ('&PROC(&I)' EQ 'MSG' OR &MSG)                    X03004 08150037
&TRANS   SETB  ('&PROC(&I)' EQ 'TRANS' OR &TRANS)                X03004 08200037
&CONT    SETB  ('&PROC(&I)' EQ 'CONT' OR &CONT)                  X03004 08250037
&BLOCK   SETB  ('&PROC(&I)' EQ 'BLOCK' OR &BLOCK)                X03004 08300037
&NLGIN   SETB  ('&PROC(&I)' EQ 'NLGIN' OR &NLGIN)                X03004 08350037
&LGIN    SETB  ('&PROC(&I)' EQ 'LGIN' OR &LGIN)                  X03004 08400037
&LGOUT   SETB  ('&PROC(&I)' EQ 'LGOUT' OR &LGOUT)                X03004 08450037
&NLGOUT  SETB  ('&PROC(&I)' EQ 'NLGOUT' OR &NLGOUT)              X03004 08500037
&NCNFTXT SETB  ('&PROC(&I)' EQ 'NCONFTXT' OR &NCNFTXT)           X03004 08550037
&CONFTXT SETB  ('&PROC(&I)' EQ 'CONFTXT' OR &CONFTXT)            X03004 08600037
&TMFLL   SETB  ('&PROC(&I)' EQ 'TMFLL' OR &TMFLL)                X03004 08650037
&NTMFLL  SETB  ('&PROC(&I)' EQ 'NTMFLL' OR &NTMFLL)              X03004 08700037
&ERPIN   SETB  ('&PROC(&I)' EQ 'ERPIN' OR &ERPIN)                X03004 08750037
&NERPIN  SETB  ('&PROC(&I)' EQ 'NERPIN' OR &NERPIN)              X03004 08800037
&ERPOUT  SETB  ('&PROC(&I)' EQ 'ERPOUT' OR &ERPOUT)              X03004 08850037
&NERPOUT SETB  ('&PROC(&I)' EQ 'NERPOUT' OR &NERPOUT)            X03004 08900037
&NMONITR SETB  ('&PROC(&I)' EQ 'NMONITOR' OR &NMONITR)           X03004 08950037
&MONITOR SETB  ('&PROC(&I)' EQ 'MONITOR' OR &MONITOR)            X03004 09000037
&NELC    SETB  ('&PROC(&I)' EQ 'NELC' OR &NELC)                  X03004 09050037
&ELC     SETB  ('&PROC(&I)' EQ 'ELC' OR &ELC)                    X03004 09100037
&NEIB    SETB  ('&PROC(&I)' EQ 'NEIB' OR &NEIB)                  X03004 09150037
&EIB     SETB  ('&PROC(&I)' EQ 'EIB' OR &EIB)                    X03004 09200037
&TIMEOUT SETB  ('&PROC(&I)' EQ 'TIMEOUT' OR &TIMEOUT)            X03004 09250037
&NTIMOUT SETB  ('&PROC(&I)' EQ 'NTIMEOUT' OR &NTIMOUT)           X03004 09300037
&KEEP    SETB  ('&PROC(&I)' EQ 'KEEP' OR &KEEP)                  X03004 09450037
&TRUNC   SETB  ('&PROC(&I)' EQ 'TRUNC' OR &TRUNC)                X03004 09500037
&NBINARY SETB  ('&PROC(&I)' EQ 'NBINARY' OR &NBINARY)            X03004 09550037
&BINARY  SETB  ('&PROC(&I)' EQ 'BINARY' OR &BINARY)              X03004 09600037
&NDFASYX SETB  ('&PROC(&I)' EQ 'NDFASYX' OR &NDFASYX)           X3004BS 09650037
&DFASYX  SETB  ('&PROC(&I)' EQ 'DFASYX' OR &DFASYX)             X3004BS 09700037
&NRESPX  SETB  ('&PROC(&I)' EQ 'NRESPX' OR &NRESPX)             X3004BS 09710037
&RESPX   SETB  ('&PROC(&I)' EQ 'RESPX' OR &RESPX)               X3004BS 09720037
&CA      SETB  ('&PROC(&I)' EQ 'CA' OR &CA)                    @Z40BHUC 09730037
&CS      SETB  ('&PROC(&I)' EQ 'CS' OR &CS)                    @Z40BHUC 09740037
&RPLC    SETB  ('&PROC(&I)' EQ 'RPLC' OR &RPLC)                @Z40BHUC 09750037
&SYSRESP SETB  ('&PROC(&I)' EQ 'SYSRESP' OR &SYSRESP)          @G40AKCM 09760040
&APLRESP SETB ('&PROC(&I)' EQ 'APPLRESP' OR &APLRESP)          @G40AKCM 09770040
&NODRESP SETB ('&PROC(&I)' EQ 'NORDRESP' OR &NODRESP)          @G40AKCM 09780040
&ORDRESP SETB ('&PROC(&I)' EQ 'ORDRESP' OR &ORDRESP)           @G40AKCM 09790040
.*                                                                      09810037
&A       SETA  &MSG+&TRANS+&CONT+&BLOCK+&NLGIN+&LGIN+&LGOUT+&NLGOUT+&NC*09850037
               NFTXT+&CONFTXT+&TMFLL+&NTMFLL+&ERPIN+&NERPIN+&ERPOUT+&NE*09900037
               RPOUT+&NMONITR+&MONITOR+&NELC+&ELC+&NEIB+&EIB+&TIMEOUT   09950037
.*                                                              X04SVHS 09960037
&B       SETA  &NTIMOUT+&KEEP+&TRUNC+&NBINARY+&BINARY+&NDFASYX+&DFASYX+*10000037
               &NRESPX+&RESPX+&CA+&CS+&RPLC+&SYSRESP+&APLRESP+&NODRESP+*10050040
               &ORDRESP                                       @G40AKCM  10051040
.*                                                                      10052037
.*             &A AND &B CONTAIN THE NUMBER OF VALID OPTIONS CHECKED    10060037
.*             &C CONTAINS THE NUMBER OF ERRORS DETECTED                10070037
         AIF   (&A+&B+&C EQ &I).P000100  IF NUMBER BITS SET IS NOT      10100037
.*              EQUAL TO NUMBER OF OPTIONS CHECKED, THEN THE LAST       10110037
.*              OPTION CHECKED WAS EITHER INVALID OR DUPLICATED         10120037
.*             A PREVIOUSLY SPECIFIED OPTION.                           10130037
         IDAERMAC 5,PROC,&PROC(&I)                               X03004 10150037
&IDACB01 SETB  1                                                 X03004 10200037
&C       SETA  &C+1                     BUMP ERROR COUNTER      X04SVHS 10210037
         AGO   .P000100                                          X03004 10250037
.********************************************************************** 10260037
.P000200 AIF   (NOT(&MSG AND &TRANS)).P000300                    X03004 10300037
         IDAERMAC 8,PROC,MSG,TRANS                               X03004 10350037
&IDACB01 SETB  1                                                 X03004 10400037
.P000300 AIF   (NOT(&MSG AND &CONT)).P000400                     X03004 10450037
         IDAERMAC 8,PROC,MSG,CONT                                X03004 10500037
&IDACB01 SETB  1                                                 X03004 10550037
.P000400 AIF   (NOT(&MSG AND &BLOCK)).P000500                    X03004 10600037
         IDAERMAC 8,PROC,MSG,BLOCK                               X03004 10650037
&IDACB01 SETB  1                                                 X03004 10700037
.P000500 AIF   (NOT(&TRANS AND &CONT)).P000600                   X03004 10750037
         IDAERMAC 8,PROC,TRANS,CONT                              X03004 10800037
&IDACB01 SETB  1                                                 X03004 10850037
.P000600 AIF   (NOT(&TRANS AND &BLOCK)).P000700                  X03004 10900037
         IDAERMAC 8,PROC,TRANS,BLOCK                             X03004 10950037
&IDACB01 SETB  1                                                 X03004 11000037
.P000700 AIF   (NOT(&CONT AND &BLOCK)).P000800                   X03004 11050037
         IDAERMAC 8,PROC,CONT,BLOCK                              X03004 11100037
&IDACB01 SETB  1                                                 X03004 11150037
.P000800 AIF   (NOT(&NLGIN AND &LGIN)).P000900                   X03004 11200037
         IDAERMAC 8,PROC,NLGIN,LGIN                              X03004 11250037
&IDACB01 SETB  1                                                 X03004 11300037
.P000900 AIF   (NOT(&NLGOUT AND &LGOUT)).P001000                 X03004 11350037
         IDAERMAC 8,PROC,NLGOUT,LGOUT                            X03004 11400037
&IDACB01 SETB  1                                                 X03004 11450037
.P001000 AIF   (NOT(&NCNFTXT AND &CONFTXT)).P001100              X03004 11500037
         IDAERMAC 8,PROC,NCONFTXT,CONFTXT                        X03004 11550037
&IDACB01 SETB  1                                                 X03004 11600037
.P001100 AIF   (NOT(&TMFLL AND &NTMFLL)).P001200                 X03004 11650037
         IDAERMAC 8,PROC,TMFLL,NTMFLL                            X03004 11700037
&IDACB01 SETB  1                                                 X03004 11750037
.P001200 AIF   (NOT(&ERPIN AND &NERPIN)).P001400                 X03004 11800037
         IDAERMAC 8,PROC,ERPIN,NERPIN                            X03004 11850037
&IDACB01 SETB  1                                                 X03004 11900037
.P001400 AIF   (NOT(&ERPOUT AND &NERPOUT)).P001500               X03004 11950037
         IDAERMAC 8,PROC,ERPOUT,NERPOUT                          X03004 12000037
&IDACB01 SETB  1                                                 X03004 12050037
.P001500 AIF   (NOT(&NMONITR AND &MONITOR)).P001600              X03004 12100037
         IDAERMAC 8,PROC,MONITOR,NMONITOR                        X03004 12150037
&IDACB01 SETB  1                                                 X03004 12200037
.P001600 AIF   (NOT(&NELC AND &ELC)).P001700                     X03004 12250037
         IDAERMAC 8,PROC,NELC,ELC                                X03004 12300037
&IDACB01 SETB  1                                                 X03004 12350037
.P001700 AIF   (NOT(&NEIB AND &EIB)).P001800                     X03004 12400037
         IDAERMAC 8,PROC,NEIB,EIB                                X03004 12450037
&IDACB01 SETB  1                                                 X03004 12500037
.P001800 AIF   (NOT(&TIMEOUT AND &NTIMOUT)).P002100            @Z40BHUC 12550037
         IDAERMAC 8,PROC,TIMEOUT,NTIMEOUT                        X03004 12600037
&IDACB01 SETB  1                                                 X03004 12650037
.P002100 AIF   (NOT(&KEEP AND &TRUNC)).P002200                   X03004 12850037
         IDAERMAC 8,PROC,KEEP,TRUNC                              X03004 12900037
&IDACB01 SETB  1                                                 X03004 12950037
.P002200 AIF   (NOT(&NBINARY AND &BINARY)).P002300               X03004 13000037
         IDAERMAC 8,PROC,NBINARY,BINARY                          X03004 13050037
&IDACB01 SETB  1                                                 X03004 13100037
.P002300 AIF   (NOT(&NDFASYX AND &DFASYX)).P002400              X3004BS 13150037
         IDAERMAC 8,PROC,NDFASYX,DFASYX                         X3004BS 13200037
&IDACB01 SETB  1                                                X3004BS 13250037
.P002400 AIF   (NOT(&NRESPX AND &RESPX)).P002500                X3004BS 13300037
         IDAERMAC 8,PROC,NRESPX,RESPX                           X3004BS 13350037
&IDACB01 SETB  1                                                X3004BS 13400037
.P002500 AIF   (NOT(&CA AND &CS)).P002600                      @Z40BHUC 13410037
         IDAERMAC 8,PROC,CA,CS                                 @Z40BHUC 13420037
&IDACB01 SETB  1                                               @Z40BHUC 13430037
.P002600 AIF   (NOT(&CA AND &RPLC)).P002700                    @Z40BHUC 13440037
         IDAERMAC 8,PROC,CA,RPLC                               @Z40BHUC 13450037
&IDACB01 SETB  1                                               @Z40BHUC 13460037
.P002700 AIF   (NOT(&CS AND &RPLC)).P002800                    @Z40BHUC 13470037
         IDAERMAC 8,PROC,CS,RPLC                               @Z40BHUC 13480037
&IDACB01 SETB  1                                               @Z40BHUC 13490037
.P002800 ANOP                                                  @Z40BHUC 13510037
         AIF (NOT(&SYSRESP AND &APLRESP)).P002900              @G40AKCM 13520040
         IDAERMAC 8,PROC,SYSRESP,APPLRESP                      @G40AKSL 13570040
&IDACB01 SETB 1                                                @G40AKCM 13620040
.P002900 AIF (NOT(&NODRESP AND &ORDRESP)).P003000              @G40AKCM 13670040
         IDAERMAC 8,PROC,NODRESP,ORDRESP                       @G40AKSL 13720040
&IDACB01 SETB 1                                                @G40AKCM 13770040
.P003000 IDACB3 ARG=&PROC,KWTC=X'50',BIT=YES                    X04SVHS 25520040
&IDAELEN(&IDAENO) SETA 8                                         X03004 28520040
&IDAVALC(&IDAENO) SETC '&MSG&TRANS&CONT&BLOCK&NLGIN&LGIN&LGOUT&NLGOUT&N*31520040
               CNFTXT&CONFTXT&TMFLL&NTMFLL&ERPIN&NERPIN&ERPOUT&NERPOUT&*34520040
               NMONITR&MONITOR&NELC&ELC&NEIB&EIB&TIMEOUT&NTIMOUT'       37520040
&IDAVALC(&IDAENO) SETC '&IDAVALC(&IDAENO)&NODRESP&ORDRESP&KEEP&TRUNC&NB*40520040
               INARY&BINARY&NDFASYX&DFASYX'                    @G40AKCM 43520040
&IDAPRC2 SETC  '&NRESPX&RESPX&CA&CS&RPLC&SYSRESP&APLRESP.000000000&Z16' 43570040
.*                                                             @G40AKCM 43620040
         MEND                                                           43670040
