*DECK S$SAVCD 
          IDENT  S$SAVCD
          TITLE  S$SAVCD -  SAVE CODE$ ON A FILE
          COMMENT  SAVE CODE$ ON A FILE 
          SPACE  4
**        S$SAVCD -  SAVE CODE$ ON A FILE 
* 
*     CALLING SEQUENCE- 
*         S$SAVCD(CODE$, "MNEMONIC"); 
* 
*     GIVEN-
*         CODE$ = ARRAY CONTAINING CODE.
*          THE RIGHT 18 BITS OF THE FIRST WORD (I.E. CODE$USED) 
*          IS THE NUMBER OF WORDS TO SAVE.
*         "MNEMONIC" = "SHORT-CODE" OR "LONG-CODE". 
* 
*     DOES- 
*         SAVES CODE$ OF "SHORT-CODE" ON ZZZZZ3X. 
*         SAVES CODE$ OF "LONG-CODE" ON ZZZZZ3Y.
  
  
          ENTRY  S$SAVCD
 S$SAVCD  SUBR
          SA2    A1+1        ADDRESS OF MNEMONIC
          SA2    X2          MNEMONIC 
          SA3    =10HSHORT-CODE 
          IX0    X2-X3
          IFTHEN X0=0 
            SA3    =7LZZZZZ3X 
            EQ     SAVCD1 
            ENDIF.
          SA3    =10HLONG-CODE
          IX0    X2-X3
          IFTHEN X0=0 
            SA3    =7LZZZZZ3Y 
            EQ     SAVCD1 
            ENDIF.
          SX1    =10HS$SAVCD-1
          CALL   S$ABORT
  
  
 SAVCD1   SX2    1           SET COMPLETE BIT 
          BX6    X3+X2
          SA6    SAVCDA      STORE IN FET 
          BX6    X1          ADDRESS OF CODE$ 
          SA6    SAVCDA+1    FIRST
          SA6    SAVCDA+3    OUT
          SA2    X1          WORD WITH CODE$USED
          SB2    X2-1 
          NG     B2,SAVCD3   IF CODE$USED LE 0
          SX6    X6+B2       ADDRESS OF LAST USED WORD
          SA6    SAVCDA+2    IN 
          SX6    X6+1        IN OR OUT SHOULD NEVER REACH LIMIT 
          SA6    SAVCDA+4    LIMIT
          WRITER SAVCDA,RECALL     WRITE CODE$ TO FILE
          EXIT
  
  
 SAVCD3   MESSAGE  (=C^SORT- SYSTEM ERROR^),,RECALL 
          MESSAGE  (=C^SORT- S$SAVCD-2^),,RECALL
          ABORT 
  
  
 SAVCDA   BSS    5           FET
  
*CALL TABLE 
  
  
          END 
