*DECK NDLCKRG 
USETEXT NDLER2T 
USETEXT NDLTBLT 
USETEXT NDLDATT 
      PROC NDLCKRG(KWID,VALUE,VAL$STAT);
      BEGIN 
*IF,DEF,IMS 
# 
**    NDLCKRG - CHECK RANGE FOR PARAMETER.
* 
*     D.K. ENDO    81/10/12 
* 
*     THIS PROCEDURE CHECKS RANGE TABLE FOR PARAMETER AND THEN CHECKS 
*     IF VALUE IS WITHIN RANGE. 
* 
*     PROC NDLCKRG(KWID,VALUE,VAL$STAT) 
* 
*     ENTRY        KWID = KEYWORD I.D.
*                  VALUE = VALUE ASSIGNED TO KEYWORD
* 
*     EXIT         VAL$STAT = STATUS FLAG, SET IF VALUE IS O.K. 
* 
*     METHOD
* 
*     SEARCH RANGE TABLE FOR KEYWORD I.D. 
*     IF FOUND
*       CHECK IF VALUE IS WITHIN LEGAL LIMITS 
*       IF NOT WITHIN RANGE 
*         CONVERT NUMBER TO DISPLAY CODE. 
*         FLAG ERROR -- VALUE OUT OF RANGE. 
* 
# 
*ENDIF
      ITEM KWID;             # KEYWORD I.D.                            #
      ITEM VALUE;            # VALUE ASSIGNED TO KEYWORD               #
      ITEM VAL$STAT B;       # RETURN STATUS -- SET IF VALUE IS O.K.   #
# 
****  PROC NDLCKRG - XREF LIST BEGINS 
# 
      XREF
        BEGIN 
        PROC NDLEM2;         # MAKES ENTRY IN ERROR-FILE-2             #
        FUNC XCDD C(10);     # CONVERTS INTEGER TO DECIMAL DISPLAY CODE#
        FUNC XCHD C(10);     # CONVERTS INTERGER TO HEX DISPLAY CODE   #
        END 
# 
****
# 
      ITEM CHARVAL C(10);    # CHARACTER TEMPORARY FOR VALUE           #
      ITEM FOUND B;          # KEYWORD I.D. FOUND FLAG                 #
      ITEM I;                # SCRATCH ITEM                            #
      DEF MAXRT # 66 #; 
      ARRAY RANGE$TABLE [0:MAXRT] S(2); 
        BEGIN 
        ITEM RTWC U(0,51,9) = [MAXRT];
        ITEM RTKWID U(0,0,9) = [,  21, # P1      #
                                   23, # P2      #
                                   30, # NI      #
                                   31, # PORT    #
                                   35, # AL      #
                                   37, # DFL     #
                                   38, # FRAME   #
                                   39, # RTIME   #
                                   40, # RCOUNT  #
                                   41, # NSVC    #
                                   46, # LCN     #
                                   55, # CA      #
                                   56, # CO      #
                                   58, # MREC    #
                                   59, # W       #
                                   61, # NCIR    #
                                   62, # NEN     #
                                   68, # ABL     #
                                   69, # DBZ     #
                                   70, # UBZ     #
                                   71, # DBL     #
                                   72, # UBL     #
                                   73, # XBZ     #
                                   74, # DO      #
                                   75, # STREAM  #
                                   76, # HN      #
                                   80, # P80     #
                                   81, # P81     #
                                   82, # P82     #
                                   83, # P83     #
                                   84, # P84     #
                                   85, # P85     #
                                   86, # P86     #
                                   87, # P87     #
                                   88, # P88     #
                                   89, # P89     #
                                   90, # AB      #
                                   92, # BS      #
                                   93, # B1      #
                                   94, # B2      #
                                   95, # CI      #
                                   96, # CN      #
                                   97, # CT      #
                                   98, # DLC     #
                                  100, # DLX     #
                                  103, # LI      #
                                  107, # PL      #
                                  108, # PW      #
                                  111, # XLC     #
                                  112, # XLX     #
                                  115, # ELX     #
                                  123, # EBX     #
                                  125, # MC      #
                                  126, # XLY     #
                                  130, # MCI     #
                                  131, # MLI     #
                                  146, # MXCOPYS #
                                  154, # SNODE   #
                                  155, # DNODE   #
                                  156, # ACCLEV  #
                                  157, # DHOST   #
                                  158, # DPLR    #
                                  159, # DPLS    #
                                  162, # WR      #
                                  163, # WS      #
                                  200, #  SHOST  #
                                      ];
        ITEM RTTYPE U(0,9,3) = [,   2, # P1      #
                                    2, # P2      #
                                    1, # NI      #
                                    2, # PORT    #
                                    1, # AL      #
                                    1, # DFL     #
                                    1, # FRAME   #
                                    1, # RTIME   #
                                    1, # RCOUNT  #
                                    1, # NSVC    #
                                    1, # LCN     #
                                    2, # CA      #
                                    1, # CO      #
                                    1, # MREC    #
                                    1, # W       #
                                    1, # NCIR    #
                                    1, # NEN     #
                                    1, # ABL     #
                                    1, # DBZ     #
                                    1, # UBZ     #
                                    1, # DBL     #
                                    1, # UBL     #
                                    1, # XBZ     #
                                    1, # DO      #
                                    1, # STREAM  #
                                    1, # HN      #
                                    2, # P80     #
                                    2, # P81     #
                                    2, # P82     #
                                    2, # P83     #
                                    2, # P84     #
                                    2, # P85     #
                                    2, # P86     #
                                    2, # P87     #
                                    2, # P88     #
                                    2, # P89     #
                                    2, # AB      #
                                    2, # BS      #
                                    2, # B1      #
                                    2, # B2      #
                                    2, # CI      #
                                    2, # CN      #
                                    2, # CT      #
                                    1, # DLC     #
                                    2, # DLX     #
                                    1, # LI      #
                                    1, # PL      #
                                    1, # PW      #
                                    1, # XLC     #
                                    2, # XLX     #
                                    2, # ELX     #
                                    2, # EBX     #
                                    2, # MC      #
                                    2, # XLY     #
                                    1, # MCI     #
                                    1, # MLI     #
                                    1, # MXCOPYS #
                                    1, # SNODE   #
                                    1, # DNODE   #
                                    1, # ACCLEV  #
                                    2, # DHOST   #
                                    1, # DPLR    #
                                    1, # DPLS    #
                                    1, # WR      #
                                    1, # WS      #
                                    2, # SHOST  # 
                                      ];
        ITEM RTMIN (0,12,18) = [,   1, # P1      #
                                    1, # P2      #
                                    1, # NI      #
                                    1, # PORT    #
                                    0, # AL      #
                                   16, # DFL     #
                                    1, # FRAME   #
                                    0, # RTIME   #
                                    1, # RCOUNT  #
                                    0, # NSVC    #
                                    0, # LCN     #
                                X"70", # CA      #
                                    1, # CO      #
                                    1, # MREC    #
                                    1, # W       #
                                    1, # NCIR    #
                                    1, # NEN     #
                                    1, # ABL     #
                                    1, # DBZ     #
                                    1, # UBZ     #
                                    1, # DBL     #
                                    1, # UBL     #
                                  200, # XBZ     #
                                    1, # DO      #
                                    1, # STREAM  #
                                    1, # HN      #
                                    0, # P80     #
                                    0, # P81     #
                                    0, # P82     #
                                    0, # P83     #
                                    0, # P84     #
                                    0, # P85     #
                                    0, # P86     #
                                    0, # P87     #
                                    0, # P88     #
                                    0, # P89     #
                                    0, # AB      #
                                    0, # BS      #
                                    0, # B1      #
                                    0, # B2      #
                                    0, # CI      #
                                    0, # CN      #
                                    0, # CT      #
                                    1, # DLC     #
                                    0, # DLX     #
                                    0, # LI      #
                                    0, # PL      #
                                    0, # PW      #
                                    1, # XLC     #
                                    0, # XLX     #
                                    0, # ELX     #
                                    0, # EBX     #
                                    0, # MC      #
                                    0, # XLY     #
                                    0, # MCI     #
                                    0, # MLI     #
                                    1, # MXCOPYS #
                                    0, # SNODE   #
                                    0, # DNODE   #
                                    0, # ACCLEV  #
                                    0, # DHOST   #
                                   16, # DPLR    #
                                   16, # DPLS    #
                                    1, # WR      #
                                    1, # WS      #
                                    0, # SHOST   #
                                      ];
        ITEM RTMAX (1,0,60) = [, 254, # P1      # 
                                  254, # P2      #
                                  254, # NI      #
                                  254, # PORT    #
                                    7, # AL      #
                                 1024, # DFL     #
                                    7, # FRAME   #
                                25500, # RTIME   #
                                   15, # RCOUNT  #
                                  255, # NSVC    #
                                  255, # LCN     #
                                X"7F", # CA      #
                                  255, # CO      #
                                    7, # MREC    #
                                    7, # W       #
                                  255, # NCIR    #
                                  255, # NEN     #
                                    7, # ABL     #
                                 2043, # DBZ     #
                                   20, # UBZ     #
                                    7, # DBL     #
                                   31, # UBL     #
                                 2043, # XBZ     #
                                    7, # DO      #
                                    7, # STREAM  #
                                  255, # HN      #
                                  255, # P80     #
                                  255, # P81     #
                                  255, # P82     #
                                  255, # P83     #
                                  255, # P84     #
                                  255, # P85     #
                                  255, # P86     #
                                  255, # P87     #
                                  255, # P88     #
                                  255, # P89     #
                                  127, # AB      #
                                  127, # BS      #
                                  127, # B1      #
                                  127, # B2      #
                                   99, # CI      #
                                  127, # CN      #
                                  127, # CT      #
                                 4095, # DLC     #
                                  255, # DLX     #
                                   99, # LI      #
                                  255, # PL      #
                                  255, # PW      #
                                 4095, # XLC     #
                                  255, # XLX     #
                                  127, # ELX     #
                                X"FF", # EBX     #
                                  255, # MC      #
                                  255, # XLY     #
                                  250, # MCI     #
                                  250, # MLI     #
                                   15, # MXCOPYS #
                                  255, # SNODE   #
                                  255, # DNODE   #
                                   15, # ACCLEV  #
                                  X"FF", #DHOST  #
                                 1024, # DPLR    #
                                 1024, # DPLS    #
                                    7, # WR      #
                                    7, # WS      #
                            X"FFFFFF", # SHOST #
                                      ];
        END 
      SWITCH VALTYPE        , # UNKNOWN # 
                    DECIMAL , # DECIMAL # 
                HEXIDECIMAL ; # HEXIDEC # 
      CONTROL EJECT;
#                                                                      #
#                            NDLCKRG CODE BEGINS HERE                  #
#                                                                      #
      VAL$STAT = TRUE;       # SET RETURN STATUS TO O.K.               #
      FOUND = FALSE;         # CLEAR FOUND FLAG                        #
      FOR I=1 STEP 1 WHILE NOT FOUND AND I LQ MAXRT DO
        BEGIN                # SEARCH RANGE TABLE FOR KEYWORD I.D.     #
        IF KWID EQ RTKWID[I]
        THEN                 # IF KEYWORD I.D. MATCHES                 #
          BEGIN 
          FOUND = TRUE;      # SET FOUND FLAG                          #
          IF VALUE LS RTMIN[I] OR VALUE GR RTMAX[I] 
          THEN               # VALUE IS OUT OF RANGE                   #
            BEGIN 
            GOTO VALTYPE[RTTYPE[I]];   # CONVERT VALUE TO DISPLAY CODE #
DECIMAL:  
            CHARVAL = XCDD(VALUE);     # CONVERT TO DISPLAY CODE       #
            GOTO NEXT;
HEXIDECIMAL:  
            CHARVAL = XCHD(VALUE);     # CONVERT TO HEXIDECIMAL        #
            GOTO NEXT;
NEXT: 
            IF RTKWID[I] EQ KID"AL"           # IF AL IS THE KEYWORD   #
            THEN
              BEGIN 
              NDLEM2(ERR163,STLNUM[0],CHARVAL); # FLAG WARNING         #
              END 
            ELSE
              BEGIN 
              NDLEM2(ERR100,STLNUM[0],CHARVAL); 
              END 
            VAL$STAT = FALSE;          # RETURN ERROR STATUS           #
            END 
          END 
        END 
      RETURN;                # **** RETURN ****                        #
      END # NDLCKRG # 
      TERM
