*DECK DB$CKVS 
USETEXT SCANTXT 
      FUNC DB$CKVS B; 
 #
  *   DB$CKVS - VALIDATE ALL VSNS                PAGE  1
* *   M. D. SAXE                                 DATA  02/02/76 
* *   J. G. SERPA - MDU 2.3 ENHANCEMENTS
  
  DC  PURPOSE 
  
      TO VERIFY THAT CURRENT WORD IS PROPER VSN.
  
  DC  ENTRY CONDITIONS
  
      CURWORD - CONTAINS THE WORD TO BE TESTED. 
      DB$CLNG - LENGTH OF CURWORD IN CHARS. 
  
  DC  EXIT CONDITIONS 
  
      RETURNS TRUE IF CURWORD IS LQ 6 CHARS AND CONTAINS NO SPECIAL 
      CHARACTERS. RETURNS FALSE OTHERWISE.
  
  DC  CALLING ROUTINES
  
      DB$SR36 - VALIDATE AND STORE VOLUME SERIAL NUMBER 
  
  DC  CALLED ROUTINES 
  
      NONE
  
 #
      BEGIN 
  
#   TEMPORARY ITEMS                                                    #
      ITEM CHAR C(1);        # TEMPORARY STORAGE FOR CHARACTER TEST.   #
      ITEM I;                # INDEX FOR LOOP.                         #
 #
  DC  DESCRIPTION 
  
 #
      CONTROL EJECT;
  
 #
      CHECK TO SEE THAT THE VSN IS @ 6 CHARACTERS. IF NOT SET FLAG TO 
      INDICATE FAILURE AND RETURN.
 #
      IF DB$CLNG LQ 6 THEN
        BEGIN 
 #
      SCAN THE VSN TO MAKE SURE THERE ARE NO SPECIAL CHARACTERS. IF ANY 
      ARE FOUND, SET FLAG TO INDICATE FAILURE AND RETURN. 
 #
        FOR I=0 STEP 1 UNTIL DB$CLNG - 1 DO 
          BEGIN 
          CHAR = C<I,1>CURWORD[0];
          IF CHAR GQ "A" AND CHAR LQ "9" THEN 
            TEST I; 
  
         ELSE 
          BEGIN 
          DB$CKVS = FALSE;
          RETURN; 
          END 
          END 
        DB$CKVS = TRUE; 
        END 
      ELSE
        DB$CKVS = FALSE;
      RETURN; 
      END 
      TERM; 
