*DECK DB$ASLF 
USETEXT CDCSCTX 
      PROC DB$ASLF(SBNAM,RESULT); 
      BEGIN 
 #
* *   DB$ASLF -- SEARCH ASL CHAIN FOR SUBSCHEMA  PAGE  1
* *   W.P CEAGLIO                                DATE  05/01/79 
* 
* DC  PURPOSE 
* 
*     SEARCH THE SCHEMA ASL CHAIN FOR A GIVEN SUBSCHEMA 
* 
* DC  ENTRY CONDITIONS
* 
# 
      ITEM SBNAM C(30);            # SUBSCHEMA NAME (BLANK FILL)       #
      ITEM RESULT    I;            # STATUS OF REQUEST                 #
# 
* 
*     ASSUMPTIONS 
* 
*     SALX    SET TO INDEX OF SAL ENTRY FOR APPLICABLE SCHEMA 
* 
* DC  EXIT CONDITIONS 
* 
*     RESULT
* 
*       0  SUBSCHEMA NAME EXISTS IN ASL CHAIN AND P<ASL> SET
* 
*       1  SUBSCHEMA NAME DOES NOT EXIST IN ASL CHAIN 
* 
* DC  CALLING ROUTINES
* 
*     DB$INV$      INVOKE PROCESSOR 
* 
*     DB$LTSB      SUB-SCHEMA LONG-TERM INVOKE PROCESSOR
* 
* DC  CALLED ROUTINES 
# 
      XREF PROC DB$FLOP;           # GENERATE FLOW POINT               #
# 
* DC  NON-LOCAL VARIABLES 
* 
*     CDCS COMMON 
* 
* DC  DESCRIPTION 
* 
*     THE ASL CHAIN POINTER IS PICKED FROM THE SAL ENTRY. THE CHAIN IS
*     SEARCHED UNTIL A MATCHING SUBSCHEMA NAME IS FOUND OR THE CHAIN
*     IS EXHAUSTED.  IF THE SEARCH IS SUCCESSFUL, RESULT IS SET TO ZERO 
*     , OTHERWISE IT IS SET TO ONE. 
* 
 #
  
      CONTROL EJECT;
  
  
#     LOCAL VARIABLES                                                  #
  
      ITEM I       I;              # SCRATCH -- FOR LOOPS              #
      ITEM J       I;              # SCRATCH -- FOR LOOPS              #
  
  
#     S T A R T  O F  D B $ A S L F  E X E C U T A B L E  C O D E      #
  
      CONTROL IFGR DFFLOP,0;
        DB$FLOP("ASLF   "); 
      CONTROL ENDIF;
  
      J = SAASLPTR [SALX];
      FOR I=I WHILE J NQ 0
      DO
        BEGIN 
        P<ASL> = J; 
        IF SBNAM EQ ASSBNAME [0]
        THEN
          BEGIN 
          RESULT = 0; 
  
          CONTROL IFGR DFFLOP,0;
            DB$FLOP("ASLF-1 "); 
          CONTROL ENDIF;
  
          RETURN; 
          END 
        J = ASNEXT [0]; 
        END 
      RESULT = 1; 
      END 
      TERM
