COMPVFN 
COMMON
          CTEXT  COMPVFN - VERIFY FILE NAME.
          IF     -DEF,QUAL$,1 
          QUAL   COMPVFN
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 VFN      SPACE  4
***       VFN - VERIFY FILE NAME. 
*         G. R. MANSFIED.  09/27/69.
 VFN      SPACE  4
***              VFN CHECKS THE FILE NAME FOR LEGALITY. 
*         THE FILE NAME MUST BE 1-7 ALPHA/NUMERIC CHARACTERS LEFT 
*         JUSTIFIED WITH TRAILING 0 FILL. 
* 
*         ENTRY  (FN - FN+3) = FILE NAME. 
* 
*         EXIT   (A) .NE. 0 IF FILE NAME IN CORRECT FORMAT. 
* 
*         USES   T1.
* 
*         NOTE - IF *VFN$* IS DEFINED, THE ASTERISK (*) IS ALLOWED AS 
*                A VALID CHARACTER IN THE FILE NAME.
  
  
 VFN2     LDI    T1          CHECK REMAINDER OF NAME
          NJN    VFN4        IF NOT BLANK 
 VFN3     AOD    T1 
          LMN    FN+3 
          NJN    VFN2        IF CHARACTERS 1 - 6
          LDD    FN+3        CHECK 7TH CHARACTER
          SHN    -6 
          NJN    VFN4        IF NOT BLANK 
          LDD    FN          CHECK FIRST BYTE 
          UJN    VFNX        RETURN 
  
 VFN4     LDN    0           RETURN WITH (A) = 0
  
 VFN      SUBR               ENTRY/EXIT 
          LDN    FN          SET BYTE ADDRESS 
          STD    T1 
 VFN1     LDI    T1          CHECK UPPER CHRACTER 
          SHN    -6 
          ZJN    VFN2        IF BLANK 
          SBN    1R9+1
 VFN$     IF     -DEF,VFN$
          PJN    VFN4        IF NOT ALPHA/NUMERIC 
 VFN$     ELSE
          MJN    VFN1.1      IF ALPHANUMERIC
          SBN    1R*-1R9-1
          NJN    VFN4        IF NOT +*+ 
 VFN$     ENDIF 
 VFN1.1   LDI    T1          CHECK LOWER CHARACTER
          LPN    77 
          ZJN    VFN3        IF BLANK 
          SBN    1R9+1
 VFN$     IF     -DEF,VFN$
          PJN    VFN4        IF NOT ALPHA/NUMERIC 
 VFN$     ELSE
          MJN    VFN1.2      IF ALPHANUMERIC
          SBN    1R*-1R9-1
          NJN    VFN4        IF NOT +*+ 
 VFN$     ENDIF 
 VFN1.2   AOD    T1          ADVANCE BYTE ADDRESS 
          LMN    FN+3 
          NJN    VFN1        LOOP FOR 6 CHARACTERS
          LDD    FN+3        CHECK 7TH CHARACTER
          SHN    -6 
          SBN    1R9+1
          MJN    VFNX        RETURN IF ALPHA/NUMERIC
 VFN$     IF     DEF,VFN$ 
          SBN    1R*-1R9-1
          NJN    VFN4        IF NOT +*+ 
          LDN    1           INDICATE SUCCESS 
          UJN    VFNX        RETURN 
 VFN$     ELSE
          UJN    VFN4        PROCESS ERROR
 VFN$     ENDIF 
          SPACE  4
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 VFN      EQU    /COMPVFN/VFN 
 QUAL$    ENDIF 
          ENDX
