*DECK DA$NMSC 
      PROC DE$NMSC(DIT,NTYPE,NAME,NMLENW,NWORDS,WSA); 
      BEGIN 
 #
 *    DE$NMSC,DE$DISC 
  *   P.L.KENNY                                  DATE  07/19/74 
  
  DC  PURPOSE 
  
      GIVEN AN AREA,RECORD,SET, OR ITEM NAME,  THIS ROUTINE WILL FIND 
      THE WORD ADDRESS OF THAT ENTRY IN THE SCHEMA AND, IF DESIRED, 
      READ IN A SPECIFIED NUMBER OF WORDS OF THAT ENTRY.
  
  DC  ENTRY CONDITIONS
  
        THERE ARE TWO ENTRY POINTS TO THIS ROUTINE.  THE CALLING
      SEQUENCES ARE:  
      DE$NMSC(DIT,NTYPE,NAME,NMLENW,NWORDS,WSA) 
                        AND 
      DE$NMSC(DIT,QUALADDR,NAME,NMLENW,NWORDS,WSA)
      THE PARAMETERS ARE IDENTICAL FOR THE TWO ENTRY POINTS EXCEPT FOR
      THE SECOND PARAMETER. 
        DIT - 24-WORD DIRECTORY INFORMATION TABLE. WORDS 0-20 SHOULD
      CONTAIN THE SCHEMA CONTROL WORDS. WORDS 21-24 ARE USED FOR
      COMMUNICATING WITH THE CALLING ROUTINE.  IF THE INDEX FIELDS IN 
      WORD 23 ARE NON-ZERO, THEN IT IS ASSUMED THAT THESE FIELDS
      DESCRIBE AN ARRAY CONTAINING A PORTION OF THE HASH-INDEX. IF THESE
      FIELDS ARE ZERO, THEN THIS ROUTINE WILL READ 50 WORDS OF THE INDEX
      INTO A 50-WORD ARRAY WITHIN THIS ROUTINE. 
        NTYPE - 1-REC,2-SET,3-AREA. 
        NAME - NAME OF ENTRY TO BE FOUND (1-30 CHARACTERS). 
        NMLENW - LENGTH OF NAME IN WORDS. 
        NWORDS - NUMBER OF WORDS OF ENTRY TO BE READ (MAY BE ZERO). 
        WSA - ARRAY INTO WHICH ENTRY WILL BE  READ. 
        QUALADDR - ADDRESS OF RECORD WHICH QUALIFIES ITEM NAME. THIS MAY
      BE ZERO IF ITEM NAME IS UNIQUE AMONG ITEMS IN TNE SCHEMA. 
  
  DC  EXIT CONDITIONS 
  
      SUCCESSFUL CALL:  
        WORD 21 (DAENTAD) OF THE DIT WILL CONTAIN THE SCHEMA WORD 
      ADDRESS OF THE NAMED ENTRY. 
        WSA WILL CONTAIN NWORDS OF THE NAMED ENTRY. 
        WORD 22 (DASTATE) OF THE DIT WILL BE ZERO 
      UNSUCCESSFUL CALL:  
        DASTATE WILL HAVE ONE OF THE FOLLOWING VALUES - 
        1- COULD NOT FIND NAMED ENTRY IN THE SCHEMA.
        2- ITEM NAME IS NOT UNIQUE BUT NO QUALIFIER IS GIVEN. 
        NNN- REC MANAGER ERROR CODE.
  
  DC  CALLING ROUTINES
  
      CDCS 1.0 INVOKE MODULE
  
  DC  CALLED ROUTINES 
  
      HASHNM - NAME-HASHING ROUTINE 
      DE$GTSC - PERFORMS GET ON SCHEMA FILE 
      OVRLOOP - SEARCH FOR ENTRY IN INDEX OVERFLOW AREA.
  
  DC  NON-LOCAL VARIABLES 
  
      THOSE CELLS DESCRIBED IN THE EXIT CONDITIONS. 
      THE CONTENTS OF THE CRM BUFFER AND INDEX AND OVERFLOW WSA AREAS 
      WILL BE MODIFIED. 
  
  DC  DESCRIPTION 
  
        IF THE ENTRY POINT DE$NMSC IS CALLED,SAVE THE NTYPE PARAMETER 
      VALUE IN THE CELL NAMETYPE. IF THE ENTRY DE$DISC IS CALLED, SET 
      THE NAMETYPE CELL TO ZERO AND INITIALIZE LASTDISTANCE (A CELL 
      WHICH WILL BE USED IN CHECKING ITEM QUALIFICATION) TO ZERO. 
        READ 50 WORDS OF THE INDEX INTO CORE AND SET THE DIT
      DAINDX FIELDS TO THE APPROPRIATE VALUE. 
        CALL THE ROUTINE HASHNM TO CALCULATE THE 30-BIT HASH-ID FOR THIS
      NAME. CALCULATE THE SLOT FOR THIS NAME IN THE INDEX BY DIVISION 
      BY THE LENGTH OF THE PRIME AREA OF THE HASH TABLE.
        CHECK WHETHER THE DESIRED INDEX SLOT IS IN CORE.  IF NOT, READ
      IN MORE OF THE INDEX. 
        IF THE HASH-ID AND NAME-TYPE IN THE INDEX SLOT MATCH THOSE OF 
      THE NAME, CHECK THE SYNONYM FLAG. IF IT IS SET, CALL THE OVERLOOP 
      ROUTINE TO SEARCH FOR THE NAME IN THE OVERFLOW AREA. IF THE 
      SYNONYM BIT IS NOT SET, THEN CHECK THE SAME-NAME FLAG. IF IT IS 
      SET, THEN THE SEARCH SHOULD BE FOR A QUALIFIED ITEM, SO CALCULATE 
      THE DISTANCE OF THIS ENTRY FROM THE LOCATION OF THE QUALIFYING
      RECORD ENTRY TO FIND THE CLOSEST SAME-NAME ENCOUNTERED SO FAR. IF 
      THE SAME-NAME FLAG WAS NOT SET, THEN A FINAL NATCH HAS BEEN MADE, 
      SO EXIT THE LOOP. 
        IF A FINAL MATCH HAS NOT BEEN MADE, THEN CONTINUE IN THE LOOP 
      FOLLOWING THE CHAINED LIST WITHIN THE PRIME AREA. 
        IF THE CHAINED LIST HAS ENDED AND NO FINAL MATCH HAS BEEN MADE
      YET, THEN IF THE SYNONYM BIT IS SET IN THE LAST ENTRY IN THE
      CHAIN, THEN THE OVERFLOW AREA MUST BE SEARCHED FOR THE NAME.
        IF STILL NO FINAL MATCH HAS BEEN FOUND (OR NO PROPERLY QUALIFIED
      MATCH FOR AN ITEM), THEN SET DASTATE TO 1 AND RETURN.  IF THERE IS
      A FINAL MATCH, READ IN NWORDS OF THE ENTRY, SET THE DIT FIELD 
      DAENTAD TO THE WORD ADDRESS OF THE ENTRY, AND RETURN. 
  
      NOTE: IN THE SCHEMA AN AREA NAME MUST BE UNIQUE AMONG ALL AREAS, A
      RECORD NAME MUST BE UNIQUE AMONG ALL RECS, A SET MUST BE UNIQUE 
      AMONG ALL SETS, AN ITEM MUST BE UNIQUE WITHIN  A RECORD.
      THE ONLY QUALIFICATION ARISES WITH ITEM NAMES WHICH MAY NEED TO BE
      QUALIFIED BY A RECORD.  IF THERE IS MORE THAN ONE ITEM WITH THE 
      SAME NAME, THE SAME NAME FLAG IN THE PRIME
      HASH ENTRY IS SET. (ALTHOUGH AN AREA OR RECORD, FOR EXAMPLE,COULD 
      HAVE THE SAME NAME, THE ENTRY TYPE CODE IS ENOUGH TO QUALIFY THE
      NAME IN SUCH A CASE.) 
 #
      CONTROL EJECT;
      ARRAY DIT P(24);       # DIRECTORY INFORMATION TABLE #
        BEGIN                # DIT DECLARATIONS # 
*CALL DITCOMSC
        END 
      ITEM NTYPE;            #NAME TYPE VALUES  1-REC,2-SET,3-AREA. # 
      ITEM NAME C(30);       #NAME OF ENTRY TO BE FOUND. #
      ITEM NMLENW;           #NAME-LENGTH IN WORDS. # 
      ITEM NWORDS;           #NUMBER OF WORDS OF ENTRY TO BE READ INTO
                              WSA. #
      ARRAY WSA;;            #AREA TO CONTAIN ENTRY. #
  
# GLOBAL DECLARATIONS. #
  
      XREF PROC DE$GTSC;
      XREF PROC DE$HSNM;
      XREF PROC HASH20; 
      ITEM DISTANCE;
      ITEM ENTRYWA; 
      ITEM FINALMATCH B;
      ITEM HASHID;
      ITEM HASHSLOT;
      ITEM I; 
      ITEM INDEXWD; 
      ITEM LASTDISTANCE;
      ITEM NAMETYPE;
      ITEM NEXTPTR; 
      ARRAY INDEX [49]; 
        BEGIN 
        ITEM HASHCHAIN U(0,34,8); 
        ITEM HASHENT30 U(0,0,30); 
        ITEM HASHNAMTYPE U(0,30,2); 
        ITEM HASHSAMENAME B(0,32,1);
        ITEM HASHSYN B(0,33,1); 
        ITEM HASHWA U(0,42,18); 
        END 
  
      CONTROL EJECT;
  
      NAMETYPE=NTYPE;        #SAVE NAME TYPE.#
      GOTO START; 
  
  
  
  
  
      ENTRY PROC DE$DISC(DIT,QUALADDR,NAME,NMLENW,NWORDS,WSA);
      ITEM QUALADDR;         #WORD ADDRESS OF QUALIFYING RECORD,IF ANY. 
                              CAN BE ZERO IF THE ITEM NAME IS UNIQUE
                              AMONG ITEM NAMES IN THE SCHEMA. # 
  
      NAMETYPE=0;            # SET NAMETYPE TO INDICATE THAT THE SEARCH 
                               IS FOR A DATA-BASE ITEM. # 
      LASTDISTANCE=999999;   #INITIALIZE CELL USED IN CHECKING ITEM 
                              QUALIFICATION. #
  
  
  
START:  DASTATE[0]=0;        #INITIALIZE ERROR-STATUS CELL. # 
      FINALMATCH=FALSE; 
      IF SCCWSCHNAME[0] EQ 0 THEN 
        BEGIN 
        DASTATE[0] = 1;       # EMPTY SCHEMA FILE # 
        RETURN; 
        END 
  
# READ 50 WORDS (500 CHARACTERS) OF INDEX INTO CORE                    #
  
        DE$GTSC(INDEX,500,SCCWHASHADDR[0]); 
                             # IF A CRM ERROR OCCURRED - RETURN WITH IT#
        IF DASTATE[0] NQ 0 THEN 
          RETURN; 
        DAINDXWRDS[0]=50;    #NUMBER OF INDEX WORDS IN CORE. #
        DAINDXWD1[0]=0;      #FIRST INDEX WORD IN CORE (RELATIVE TO WORD
                              ZERO OF INDEX. #
  
# CALL HASH ROUTINE TO CALCULATE 30-BIT HASHED VERSION OF NAME. # 
      IF SCCWHASH20 
      THEN
        BEGIN 
        HASH20(NAME,NMLENW,HASHID); 
        END 
      ELSE
        BEGIN 
        DE$HSNM(NAME,NMLENW,HASHID);
        END 
# CALCULATE THE SLOT FOR THIS ENTRY IN THE HASH TABLE.# 
      HASHSLOT=HASHID-(HASHID/SCCWHSHTBLEN[0])*SCCWHSHTBLEN[0]; 
  
  
      NEXTPTR=1;             #INITIALIZE FOR-LOOP CONTROL VARIABLE.    #
      FOR I=0 WHILE NEXTPTR NQ 0 AND NOT FINALMATCH DO
  
        BEGIN 
# CHECK WHETHER THE DESIRED INDEX SLOT IS IN CORE. #
        IF (HASHSLOT LS DAINDXWD1[0]) OR (HASHSLOT GQ DAINDXWD1[0] +
        DAINDXWRDS[0]) THEN 
          BEGIN              #GET MORE INDEX #
          DE$GTSC(INDEX,DAINDXWRDS[0]*10,SCCWHASHADDR[0]+HASHSLOT); 
          IF DASTATE[0] NQ 0 THEN 
            RETURN; 
          DAINDXWD1[0]=HASHSLOT;
          INDEXWD=0;         #SUBSCRIPT OF ARRAY ITEM CONTAINING
                              HASHSLOT ENTRY.#
          END 
        ELSE
          INDEXWD=HASHSLOT-DAINDXWD1[0];
  
        IF HASHID EQ HASHENT30[INDEXWD] AND HASHNAMTYPE[INDEXWD] EQ 
        NAMETYPE THEN 
          BEGIN              #HASHID,S AND NAMETYPES MATCH. # 
          IF HASHSYN[INDEXWD] THEN
            BEGIN            #SYNONYM-BIT SET SO PROCESS OVERFLOW LIST.#
            OVRLOOP;
            IF DASTATE[0] NQ 0 THEN 
              RETURN; 
            TEST;            #OVRLOOP ROUTINE WILL SET NEXTPTR TO ZERO
                              TO END LOOP. #
            END 
          ELSE
            BEGIN            #NOT SYNONYMS. CHECK SAME NAME#
            IF HASHSAMENAME[INDEXWD] THEN 
              BEGIN          #SAME-NAME BIT IS SET. # 
              IF QUALADDR LQ 0 THEN 
                BEGIN        # SAMENAME FLAG SET BUT THE  ITEM  IS NOT
                               QUALIFIED. # 
                DASTATE[0]=2; 
                RETURN; 
                END 
              ELSE
                BEGIN        #QUALIFIED ITEM SO CHECK DISTANCE FROM 
                              QUALIFIER.# 
                DISTANCE=HASHWA[INDEXWD]-QUALADDR;
                IF DISTANCE GR 0 AND DISTANCE LS LASTDISTANCE THEN
                  BEGIN      #SAVE THE ADDRESS OF THIS ENTRY.#
                  ENTRYWA=HASHWA[INDEXWD];
                  LASTDISTANCE=DISTANCE;
                  END 
                END 
              END 
            ELSE
              BEGIN          #SAME-NAME FLAG NOT SET.#
              FINALMATCH = TRUE;
              ENTRYWA=HASHWA[INDEXWD];
              TEST; 
              END 
            END 
          END 
        NEXTPTR=HASHCHAIN[INDEXWD]; 
        IF NEXTPTR NQ 0 THEN
          BEGIN              #CHECK IF NEXT INDEX ENTRY ON CHAIN IS IN
                              CORE.#
          HASHSLOT=HASHSLOT+NEXTPTR;
# TEST IF IT IS NECESSARY TO WRAP AROUND TO GET NEXT CHAIN ENTRY.#
          IF HASHSLOT GQ SCCWHSHTBLEN[0] THEN 
            HASHSLOT=HASHSLOT-SCCWHSHTBLEN[0] ; 
          END 
        END                  #END FOR-LOOP# 
  
  
  
      IF NOT FINALMATCH THEN #CHECK SYNONYM BIT OF LAST ENTRY. IF IT IS 
                              SET, THEN SINCE CHAIN PTR IS ZERO,YOU MUST
                              GO TO OVERFLOW LIST TO SEARCH FOR NAME. 
                              (SUCH A CONDITION ARISES DURING HASH-TABLE
                              CONSTRUCTION IF THE CHAIN LINK VALUES ARE 
                              GREATER THAN 255.)# 
        BEGIN 
        IF HASHSYN[INDEXWD] THEN
          BEGIN 
          OVRLOOP;
          IF DASTATE[0] NQ 0 THEN 
            RETURN; 
          END 
        END 
      IF NOT FINALMATCH THEN
        IF NOT (NAMETYPE EQ 0 AND LASTDISTANCE LS 999999) THEN
          BEGIN              #NO FINAL MATCH AND NOT QUALIFIED ITEM. #
          DASTATE[0]=1; 
          RETURN; 
          END 
      IF NWORDS NQ 0 THEN 
        BEGIN 
        DE$GTSC(WSA,NWORDS*10,ENTRYWA); 
        IF DASTATE[0] NQ 0 THEN 
          RETURN; 
        END 
      DAENTAD[0]=ENTRYWA; 
      RETURN; 
  
      CONTROL EJECT;
      PROC OVRLOOP; 
      BEGIN 
 #
  *   OVRLOOP 
  *   P.L.KENNY                                  DATE  07/19/74 
  
  DC  PURPOSE 
  
        SEARCH THROUGH A LINKED PORTION OF THE HASH INDEX OVERFLOW AREA 
      IN ORDER TO FIND THE DESIRED NAMED ENTRY. 
  
  DC  ENTRY CONDITIONS
  
        THE DIT DASTATE CELL IS ZERO. 
        THE HASHWA FIELD OF THE PRIME HASH ENTRY CONTAINS THE OFFSET OF 
      THE BEGINNING OF THE OVERFLOW LINKED LIST FOR THIS SEARCH.
        THE GLOBAL VARIABLES NAME,NAMETYPE,AND NMLENW DESCRIBE THE
      DESIRED NAME: QUALADDR WILL CONTAIN A QUALIFYING ADDRESS (MAY BE
      ZERO IF ITEM NAME IS UNIQUE). 
        THE FIRST 20 WORDS OF THE DIT CONTAINS THE SCHEMA CONTROL WORDS.
        THE GLOBAL VARIABLES LASTDISTANCE AND ENTRYWA MAY CONTAIN ITEM
      INFO.DISCOVERED IN PRIME AREA SEARCH. 
        THE VARIABLE FINALMATCH IS FALSE. 
  
  DC  EXIT CONDITIONS 
  
      SUCCESSFUL CALL:  
        DASTATE IS ZERO.
        ENTRYWA CONTAINS WORD ADDRESS OF THE MATCHED ENTRY. 
        FINALMATCH IS TRUE. 
      UNSUCCESSFUL CALL:  
        DASTATE HAS ONE OF THE FOLLOWING VALUES:  
        1 - COULD NOT FIND NAMED ENTRY. 
        2 - ITEM NAME IS NOT UNIQUE BUT NO QUALIFIER IS GIVEN.
        NNN - REC MANAGER ERROR CODE. 
  
  DC  CALLING ROUTINES
  
      DA$NMSC/DA$DISC.
  
  DC  CALLED ROUTINES 
  
      GET - CRM GET ROUTINE.
      DAGETERR - PROCESS REC MANAGER GET ERROR
  
  DC  NON-LOCAL VARIABLES 
  
        THOSE CELLS MENTIONED IN EXIT CONDITIONS. 
        THE CONTENTS OF THE SCHEMA CRM BUFFER MAY CHANGE AS SECTIONS OF 
      THE HASH OVERFLOW AREA ARE READ.
        LASTDISTANCE AND DISTANCE ARE USED IN CHECKING ITEM QUALIFICA-
      TION. 
        NEXTPTR IS USED TO LINK THROUGH OVERFLOW LIST.
  
  DC  DESCRIPTION 
  
        GET 50 WORDS OF THE HASH OVERFLOW AREA STARTING AT THE OVERFLOW 
      WORD ADDRESS SPECIFIED IN THE PRIME HASH ENTRY. 
        IF THE NAME LENGTH AND NAME TYPE IN THE OVERFLOW ENTRY MATCH
      THOSE OF THE DESIRED NAME, COMPARE THE ENTIRE NAME IN THE OVERFLOW
      ENTRY WITH THE DESIRED NAME. IF THE NAMES ARE IDENTICAL, THEN IT
      IS A FINAL MATCH (SO EXIT LOOP) UNLESS THE SEARCH IS FOR AN ITEM, 
      IN WHICH CASE A CHECK IS MADE FOR THE ITEM ENTRY CLOSEST SO FAR TO
      THE QUALIFYING ENTRY. 
        IF A FINAL MATCH HAS NOT BEEN MADE, THEN CONTINUE IN THE OVER-
      FLOW LOOP FOLLOWING THE POINTERS. 
        WHEN THE LINKED OVERFLOW LIST ENDS, THEN IF NO FINAL MATCH HAS
      BEEN FOUND (OR NO PROPERLY QUALIFIED ITEM), THEN SET DASTATE TO 1 
      AND RETURN. 
        OTHERWISE RETURN WITH DASTATE STILL ZERO AND FINALMATCH SET TO
      TRUE. 
 #
      CONTROL EJECT;
  
      ITEM I; 
      ITEM IDENTICL B;
      ITEM ITEMFOUND B; 
      ITEM J; 
      ITEM OVRWD; 
      ITEM OVRWDWA; 
      ARRAY OVERFLOW [49];
        BEGIN 
        ITEM OFLENTWORD U(0,0,60);
        ITEM OFLENTNMLENW U(0,0,6); 
        ITEM OFLENTTYP U(0,6,2);
        ITEM OFLENTWA U(0,27,18);      # WA OF ENTRY IN SCHEMA         #
        ITEM OFLENTNXTPTR U(0,45,15);  # OFFSET PTR TO NEXT ENTRY      #
        END 
      CONTROL EJECT;
  
      ITEMFOUND=FALSE;       #THIS CELL WILL BE SET TO TRUE WHEN A
                              MATCHING ITEM NAME HAS BEEN FOUND AT
                              LEAST ONCE. # 
  
# GET 50 WORDS OF THE OVERFLOW AREA.# 
      OVRWDWA=HASHWA[INDEXWD]+SCCWHASHADDR[0]+SCCWHSHTBLEN[0];
      DE$GTSC(OVERFLOW,500,OVRWDWA);
      IF DASTATE[0] NQ 0 THEN 
        RETURN; 
      OVRWD=0;
      NEXTPTR=1;             #INITILAIZE FOR-LOOP VARIABLE. # 
      FOR I=0 WHILE NEXTPTR NQ 0 AND NOT FINALMATCH DO
        BEGIN 
        IF NMLENW EQ OFLENTNMLENW[OVRWD] AND NAMETYPE EQ
        OFLENTTYP[OVRWD] THEN 
          BEGIN              #NAME LENGTHS AND TYPES MATCH SO COMPARE 
                              ENTIRE NAMES. # 
          IDENTICL = TRUE;
          FOR J=1 STEP 1 WHILE J LQ NMLENW AND IDENTICL DO
            BEGIN 
            IF OFLENTWORD[OVRWD+J] NQ B<60*(J-1),60> NAME THEN
              IDENTICL=FALSE; 
            END 
          IF IDENTICL THEN   #NAMES MATCH. #
            BEGIN 
            IF NAMETYPE EQ 0 THEN 
              BEGIN          # SEARCHING FOR ITEM SO CHECK QUALIFCATION#
              IF ITEMFOUND AND QUALADDR LQ 0 THEN 
                BEGIN        #ITEM NAME HAS ALREADY BEEN FOUND,BUT NO 
                              QUALIFIER  EXISTS. #
                DASTATE[0]=2; 
                RETURN; 
                END 
              ITEMFOUND=TRUE;  #SET INDICATOR THAT THE ITEM NAME HAS BEE
                                BEEN FOUND AT LEAST ONCE. # 
              DISTANCE=OFLENTWA[OVRWD]-QUALADDR;
              IF (DISTANCE GQ 0) AND (DISTANCE LS LASTDISTANCE) THEN
                BEGIN 
                ENTRYWA=OFLENTWA[OVRWD];
                LASTDISTANCE=DISTANCE;
                END 
              END 
            ELSE
              BEGIN 
              FINALMATCH=TRUE;
              ENTRYWA=OFLENTWA[OVRWD];
              TEST; 
              END 
            END 
          END 
        NEXTPTR=OFLENTNXTPTR[OVRWD];
        IF NEXTPTR NQ 0 THEN
          BEGIN              #CHECK THAT NEXT OVERFLOW ENTRY IS IN CORE#
          OVRWD=OVRWD+NEXTPTR; #INCREASE ARRAY SUBSCRIPT.#
          OVRWDWA=OVRWDWA+NEXTPTR; #INCREASE WORD ADDRESS.# 
          IF OVRWD+4 GR 50 THEN 
            BEGIN 
            DE$GTSC(OVERFLOW,500,OVRWDWA);
            IF DASTATE[0] NQ 0 THEN 
              RETURN; 
            OVRWD=0;
            END 
          END 
        END                  # END FOR-LOOP#
  
  
      IF NAMETYPE EQ 0 THEN 
        BEGIN                #ITEM, SO CHECK QUALIFICATION# 
        IF LASTDISTANCE LS 999999 THEN
          BEGIN 
          FINALMATCH=TRUE;
          END 
        ELSE
          BEGIN 
          DASTATE[0]=1;      #COULD NOT FIND QUALIFIED ITEM.# 
          END 
        END 
      ELSE
        BEGIN 
        IF NOT FINALMATCH THEN
          BEGIN              #COULD NOT FIND MATCH FOR AREA, REC,OR SET#
          DASTATE[0]=1; 
          END 
        END 
      RETURN; 
      END 
  
  
      END 
      TERM; 
