*DECK S$SETCD 
          IDENT  S$SETCD
          TITLE  S$SETCD -  SET CODE$ FROM A FILE 
          COMMENT  SET CODE$ FROM A FILE
          SPACE  4
**        S$SETCD -  SET CODE$ FROM A FILE
* 
*     CALLING SEQUENCE- 
*         S$SETCD(CODE$, "MNEMONIC"); 
* 
*     GIVEN-
*         CODE$ = ARRAY TO CONTAIN CODE.
* 
*     DOES- 
*         IF "MNEMONIC" = "SHORT-CODE,
*             SETS CODE$ FROM FILE ZZZZZ3X. 
*         IF "MNEMONIC" = "LONG-CODE",
*             SETS CODE$ FROM FILE ZZZZZ3Y. 
  
  
          ENTRY  S$SETCD
 S$SETCD  SUBR
          SA2    A1+1        ADDRESS OF MNEMONIC
          SA2    X2          MNEMONIC 
          SA3    =10HSHORT-CODE 
          IX0    X2-X3
          IFTHEN X0=0 
            SA3    =7LZZZZZ3X 
            EQ     SETCD1 
            ENDIF.
          SA3    =10HLONG-CODE
          IX0    X2-X3
          IFTHEN X0=0 
            SA3    =7LZZZZZ3Y 
            EQ     SETCD1 
            ENDIF.
          SX1    =10HS$SETCD-1
          CALL   S$ABORT
  
  
 SETCD1   SX2    1           SET COMPLETE BIT 
          BX6    X3+X2
          SA6    SETCDA      STORE IN FET 
          BX6    X1          ADDRESS OF CODE$ 
          SA6    SETCDA+1    FIRST
          SA6    SETCDA+2    IN 
          SA6    SETCDA+3    OUT
          SA2    X1-1        3/6,21/0,18/PREV,18/NEXT 
          SX6    X2+64       ADDR OF NEXT CMM BLOCK + 1 PRU 
          SA6    SETCDA+4    LIMIT
          REWIND SETCDA,RECALL
          READ   SETCDA,RECALL  READ CODE$ FROM FILE
  
*         CHECK THAT READ WAS SUCCESSFUL
  
          SA2    SETCDA 
          LX2    -5           CHECK STATUS OF EOR (P.2-3-16)
          IFTHEN X2\0 
            SX1    =10HS$SETCD-2
            CALL   S$ABORT
            ENDIF.
  
*  CHECK THAT READ WAS NOT *TOO* SUCCESSFUL 
  
          SA2    SETCDA+2    LOOK AT THE IN POINTER 
          SB2    X2          KEEP LO 18 BITS
          SA3    SETCDA+4    LOOK AT THE LIMIT POINTER
          SB3    X3          KEEP LO 18 BITS
          SB4    B3-B2       LIMIT MINUS IN POINTER 
          SB5    64          ADDITIONAL ILLEGAL 64 WORDS
          IFTHEN B5\B4       IF TOO MUCH CODE WAS READ IN 
            SX1    =10HS$SETCD-3
            CALL S$ABORT
            ENDIF.
  
          EXIT
  
  
 SETCDA   BSS    5           FET
  
*CALL TABLE 
  
  
          END 
