*DECK,SETARR
      SUBROUTINE SETARR, RETURNS(I) 
C 
C  THIS ROUTINE IS USED TO OBTAIN ORDINALS OF ENTRIES IN DYDIT. 
C  ENTRY: ASHIFT =  8 NEED AASI FOR ARRAYS OPTION, CHECK FOR REFS 
C                = 38 NEED AASI FOR STORES OPTION, CHECK FOR REFS 
C                = 10 NEED AASI FOR STORES OPTION W/ RELATIONAL OPS 
C                =  0 NEED FREE AASI WORD 
C                = -1 NEED AASI, NO CHECKS
C         OH = THE SYMBOL TABLE ORDINAL OF THE CURRENT SYMBOL 
C         SSYMTAB = THE BEGINNING ADDRESS OF THE SYMBOL TABLE 
C         SAASI   = THE BEGINNING ADDRESS OF AASI 
C         SFIDIT  = THE BEGINNING ADDRESS OF THE FIXED AREA LIST
C  EXIT:  NORMAL RETURN = AASI FOUND
C                  AASI = ORDINAL OF FOUND AASI IN DYDIT
C         RETURNS I = (1) AASI NOT FOUND
C                             OR
C                     (2) TOO MANY REFS FOR SPECIFIED OPTION
*CALL LDBGCOM 
      IF (ASHIFT.EQ.0) GO TO 10 
      AASI = SHIFT(DEBUG(SSYMTAB-OH-1), -19) .AND. MINZERO
      IF (AASI.EQ.0) GO TO 10 
      IF (ASHIFT.LT.0) RETURN 
      IF (SHIFT(DEBUG(SAASI+AASI), 59-ASHIFT) .GE. 0) RETURN
      TEMP = FSTRIP(DEBUG(SSYMTAB - OH))
      IF (DRLELT(TEMP) .EQ. DRLELT(VALUE) ) TEMP = DEBUG(DBGPROG) 
      WRITE(DBGOUT, 11) TEMP
   11 FORMAT( * TOO MANY STORES OR ARRAYS OPTION REFERENCES FOR *, A7)
      RETURN I
C 
C  HERE IF ONLY WANT WORD 
C 
   10 IF (ASHIFT.LT.0) RETURN I 
      IF (NO LIN .LT. 0) GO TO 220
      NAASI = NAASI + 1 
      IF ( (SAASI+NAASI) .EQ. FIDIT) GO TO 200
      AASI = NAASI
      DEBUG(SAASI + AASI) = 0 
      RETURN
  200 NO LIN = -1 
      NAASI = NAASI - 1 
  220 IF (AASIADD.EQ.0) GO TO 300 
      AASI = ADDRESS(DEBUG(AASIADD+SAASI))
      AASIADD = ADDRESS(DEBUG(SAASI+AASI))
      RETURN
C 
C  HERE IF HAVE TO ASK FOR MORE ROOM
C 
  300 IF ((ELAST - 25).LE.DOLAST) GO TO 400 
      CALL DMVWDS (FIDIT - ELAST + 1, DEBUG(ELAST), DEBUG(ELAST - 25) ) 
      ELAST = ELAST - 25
      SSYMTAB = SSYMTAB - 25
      ESYMTAB = ESYMTAB - 25
      SYMTAB B = SYMTAB B - 25
      SAASI = SAASI - 25
      NAASI = NAASI + 1 
      AASI = NAASI
      CALL FIXPNTR
      DEBUG(SAASI + AASI) = 0 
      RETURN
  400 WRITE(DBGOUT, 401)
  401 FORMAT( * REQUEST FOR AASI WORD DENIED.  ASK FOR MORE CORE. *)
      RETURN I
      END 
