COMPSAF 
COMMON
          CTEXT  COMPSAF - SEARCH FOR ASSIGNED FILE.
 SAF      SPACE  4
          IF     -DEF,QUAL$,1 
          QUAL   COMPSAF
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SAF      SPACE  4
***       SAF - SEARCH FOR ASSIGNED FILE. 
*         G. R. MANSFIELD.  70/08/30. 
 SAF      SPACE  4
***              *SAF* SEARCHES THE LOCAL FNT FOR A SPECIFIED FILE. 
*         IF *SAF$* IS DEFINED, THE ENTRY SPECIFIED BY THE (A) WILL 
*         BE EXAMINED FIRST.  IF THIS INITIAL ENTRY DOES NOT MATCH, 
*         THE ENTIRE LOCAL FNT WILL BE SEARCHED.
* 
*         ENTRY  (FN - FN+3) = FILE NAME. 
*                IF *SAF$* IS DEFINED,
*                (A) = INITIAL FNT ADDRESS TO SEARCH. 
*                (A) = 0, NO INITIAL ADDRESS SPECIFIED. 
* 
*         EXIT   (A) = 0 IF FILE NOT FOUND. 
*                (FA) = ADDRESS OF FNT ENTRY (IN NFL).
*                     = 0 IF FILE NOT FOUND.
*                (FS - FS+4) = FNT ENTRY. 
* 
*         USES   FA, CM - CM+4, FS - FS+4.
* 
*         MACROS NFA. 
  
  
 SAF5     LDN    0           CLEAR FNT ADDRESS
          STD    FA 
  
 SAF      SUBR               ENTRY/EXIT 
 .A       IF     DEF,SAF$ 
          STD    FA          SAVE INITIAL SEARCH ADDRESS
 .A       ENDIF 
          LDD    CP 
          ADN    FLSW        GET NFL/100B 
          CRD    CM 
          LDD    CM 
          SHN    6           NFL SIZE 
          ADN    1           ADDRESS+1 OF LAST FNT WORD ALLOWED 
          STD    CM+1 
          LDC    FNTN-LENF   SAVE FWA OF FNT-S
          STD    CM 
 .B       IF     DEF,SAF$ 
          LDD    CM 
          STD    CM+2 
          ADN    LENF 
          SBD    FA          VALIDATE INITIAL SEARCH ADDRESS
          PJN    SAF1        IF INVALID FNT ADDRESS 
          LDD    FA 
          SBD    CM+1 
          PJN    SAF1        IF INVALID FNT ADDRESS 
          NFA    FA,R 
          UJN    SAF2.1      CHECK INITIAL ADDRESS
 .B       ENDIF 
 SAF1     LDN    LENF        ADVANCE FNT ADDRESS
          RAD    CM 
 SAF2     SBD    CM+1 
          PJN    SAF5        IF END OF FNT IN NFL 
          NFA    CM,R        GET FNT ENTRY
 SAF2.1   CRD    FS 
          LDD    FS          CHECK FIRST 2 CHARACTERS 
          ZJN    SAF1        IF BLANK ENTRY 
          LMD    FN 
          NJN    SAF1        IF NO MATCH ON 2 CHARACTERS
          LDD    FN+1        COMPARE REMAINDER OF NAMES 
          LMD    FS+1 
          NJN    SAF1        IF NOT SAME FILE NAME
          LDD    FN+2 
          LMD    FS+2 
          NJN    SAF1        IF NOT SAME FILE NAME
          LDD    FN+3 
          LMD    FS+3 
          SCN    77 
          NJN    SAF1        IF NOT SAME FILE NAME
 .C       IF     DEF,SAF$ 
          LDD    CM+2        CHECK INITIAL PASS 
          LMD    CM 
          NJN    SAF3        IF NOT INITIAL PASS
          LDD    FA 
          UJN    SAF4        RETURN 
  
 .C       ENDIF 
 SAF3     LDD    CM 
          STD    FA 
 SAF4     LJM    SAFX        RETURN 
          SPACE  4
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 SAF      EQU    /COMPSAF/SAF 
 QUAL$    ENDIF 
          ENDX
