         PROC  &P,0,&CT=,&KEY=,&DEF=                                    00000010
CTCHK    NAME  1                                                        00000020
         GBL   &PARAM1,&PARAM2                                          00000030
         LCLA  &TEMP                                                    00000040
.* O                                                                    00000050
.*   THIS PROC VALIDATES AND SETS UP COUNT FIELDS FOR PROC 'ERRTAB'.    00000060
.*   ALL OF THE KEYWORDS MUST BE SPECIFIED EACH TIME 'CTCHK' IS CALLED. 00000070
.*   THE KEYWORDS ARE:                                                  00000080
.*             CT=(X,Y)            COUNT PARAMETERS                     00000090
.*                                 X=ERROR COUNT OR 'ALL'               00000100
.*                                 Y=ERROR MESSAGE COUNTS OR 'ALL'      00000110
.*             KEY=                KEYWORD FROM 'ERRTAB' FOR WHICH      00000120
.*                                 THE COUNTS APPLY. (NOTE: INITIAL     00000130
.*                                 'F' FOR EACH KEYWORD MUST NOT        00000140
.*                                  BE SPECIFIED. EXAMPLE FREAD         00000150
.*                                  SHOULD BE SPECIFIED AS KEY=READ.)   00000160
.*             DEF=(X,Y)            DEFAULT VALUES FOR COUNTS.          00000170
.*                                  X AND Y ARE THE SAME AS THOSE       00000180
.*                                  FOR CT KEYWORD. (NOTE: THIS         00000190
.*                                  KEYWORD COUNTS ARE NOT VALIDATED.)  00000200
.*                                                                      00000210
.*   NOTE: X AND Y EQUAL TO ALL MEANS ALL ERRORS ARE ALLOWED.           00000220
.* O                                                                    00000230
.* O                                                                    00000240
.*   PROCESS ERROR COUNT FIELD 'X'                                      00000250
.* O                                                                    00000260
&PARAM1  SET   '&CT(1)'                 STORE 'X' VALUE                 00000270
         DO    '&CT(1)'=''               'X' = NULL ?                   00000280
         MNOTE   *,'ERROR COUNT NOT SPECIFIED FOR KEYWORD=F&KEY'        00000290
         GOTO  .CTCHK1                   GO TO SET UP DEFAULT VALUE     00000300
         ENDO                                                           00000310
         DO    '&CT(1)'='ALL'           'X' = 'ALL' ?                   00000320
         GOTO  .CTCHK2                   GO TO PROCESS 'Y'              00000330
         ENDO                                                           00000340
&TEMP    SETA  K'&CT(1)                 GET # OF CHAR.'S X              00000350
&DIGIT   DO    81                  SET TO PROCESS ALL DIGITS OF 'X'     00000360
.*                                       DIGIT A NUMBER ?               00000370
         DO    ('&CT(1)'(&DIGIT,1)<'0')++('&CT(1)'(&DIGIT,1)>'9')       00000380
         GOTO  .CTCHK4                   GO TO PROCESS INVALID PARAM    00000390
         ENDO                                                           00000400
         DO    &DIGIT=&TEMP             ALL 'X' DIGITS PROCESSED ?      00000410
         GOTO  .CTCHK3                   GO TO VALIDATE COUNT VALUE     00000420
         ENDO                                                           00000430
         ENDO                                                           00000440
.CTCHK3  LABEL                                                          00000450
         DO    (&CT(1)<1)++(&CT(1)>32767)  0 < COUNT VALUE < 32768      00000460
         GOTO  .CTCHK4                   GOTO PROCESS INVALID PARAM     00000470
         ENDO                                                           00000480
         GOTO  .CTCHK2                   GO TO PROCESS 'Y'              00000490
.CTCHK4  LABEL                                                          00000500
         PNOTE 'P','INVALID ERROR COUNT SPECIFIED FOR KEYWORD=F&KEY'    00000510
.CTCHK1  LABEL                                                          00000520
&PARAM1  SET   '&DEF(1)'                STORE 'X' DEFAULT VALUE         00000530
         MNOTE   *,'ERROR COUNT = &PARAM1. ASSUMED FOR KEYWORD=F&KEY'   00000540
.CTCHK2  LABEL                                                          00000550
.* O                                                                    00000560
.*   PROCESS ERROR MESSAGE COUNT FIELD 'Y'                              00000570
.* O                                                                    00000580
&PARAM2  SET   '&CT(2)'                 STORE 'Y' VALUE                 00000590
         DO    '&CT(2)'=''               'Y' = NULL ?                   00000600
         MNOTE   *,'ERROR MESSAGE COUNT NOT SPECIFIED FOR KEYWORD=F&KEYX00000610
               '                                                        00000620
         GOTO  .CTCHK11                  GO TO SET UP DEFAULT VALUE     00000630
         ENDO                                                           00000640
         DO    '&CT(2)'='ALL'            'Y' = 'ALL' ?                  00000650
         GOTO  .CTCHK12                  TERMINATE PROC                 00000660
         ENDO                                                           00000670
&TEMP    SETA  K'&CT(2)                 GET # OF CHAR.'S Y              00000680
&DIGIT2  DO    81                  SET TO PROCESS ALL DIGITS OF 'Y'     00000690
.*                                       DIGIT A NUMBER ?               00000700
         DO    ('&CT(2)'(&DIGIT2,1)<'0')++('&CT(2)'(&DIGIT2,1)>'9')     00000710
         GOTO  .CTCHK14                  GO TO PROCESS INVALID PARAM    00000720
         ENDO                                                           00000730
         DO    &DIGIT2=&TEMP            ALL 'Y' DIGITS PROCESSED ?      00000740
         GOTO  .CTCHK13                  GO TO VALIDATE COUNT VALUE     00000750
         ENDO                                                           00000760
         ENDO                                                           00000770
.CTCHK13 LABEL                                                          00000780
         DO    (&CT(2)<1)++(&CT(2)>32767)  0 < COUNT VALUE < 32768      00000790
         GOTO  .CTCHK14                 GO TO PROCESS INVALID PARAM     00000800
         ENDO                                                           00000810
         GOTO  .CTCHK12                  TERMINATE PROC                 00000820
.CTCHK14 LABEL                                                          00000830
         PNOTE 'P','INVALID ERROR MESSAGE COUNT SPECIFIED FOR KEYWORD=FX00000840
               &KEY'                                                    00000850
.CTCHK11 LABEL                                                          00000860
&PARAM2  SET   '&DEF(2)'                STORE 'Y' DEFAULT VALUE         00000870
         MNOTE   *,'ERROR MESSAGE COUNT = &PARAM2. ASSUMED FOR KEYWORD=X00000880
               F&KEY'                                                   00000890
.CTCHK12 LABEL                                                          00000900
         DO    '&PARAM1'='ALL'          X = ALL ?                       00000910
&PARAM1  SET   65535                     SET COUNT TO ALLOW ALL ERRORS  00000920
         ENDO                                                           00000930
         DO    '&PARAM2'='ALL'          Y = ALL ?                       00000940
&PARAM2  SET   65535               SET COUNT TO ALLOW ALL ERROR MSGS    00000950
         ENDO                                                           00000960
         DO    &PARAM1<&PARAM2          X < Y                           00000970
         DO    &PARAM2=65535            Y = ALL ?                       00000980
&PARAM2  SET   '&PARAM1'                STORE Y EQUAL TO X              00000990
         GOTO  .CTCHK15                 VALID PARAM CONTINUE            00001000
         ENDO                                                           00001010
&PARAM2  SET   '&PARAM1'                STORE Y EQ TO X                 00001020
         PNOTE 'P','ERROR COUNT < ERROR MESSAGE COUNT-F&KEY.=(&PARAM1.,X00001030
               &PARAM2.) ASSUMED'                                       00001040
         GOTO  .CTCHK12                 GO TO PROCESS ALL PARAM         00001050
         ENDO                                                           00001060
.CTCHK15 LABEL                                                          00001070
         END                                                            00001080
