*COMDECK STATUS 
STATUS    CTEXT  STANDARD COMPASS DEFINITION OF *STATUS* LIST 
  
  
**        STATUS -  DECLARE NAME OF STATUS LIST 
* 
*         STATUS  <STATUS NAME> 
  
  
          PURGMAC  STATUS 
 STATUS   MACRO  STATNAME 
          IFC    EQ,*STATNAME*FIXED*
 FIXFLAG  SET    1
          ELSE
 FIXFLAG  SET    0
          ENDIF 
 #STATNUM SET    0
 STATUS   ENDM
  
 FIXEDOFF EQU    100000B
          NOREF  FIXEDOFF 
  
  
  
**        , -  DEFINE A STATUS CONSTANT 
* 
*              ,  <MNEMONIC>
* 
*         EQUATES THE COMPASS SYMBOL /STATNAME/MNEMONIC TO THE
*           ORDINAL IN THE STATUS LIST. 
* 
*         NOTE-  THE MACRO *,* CAN BE DEFINED ONLY ONCE SINCE IT IS 
*           THE ONLY MACRO THAT CANNOT BE PURGED  (SINCE IT IS THE
*           CHARACTER DELIMITING MACRO NAMES ON THE *PURGMAC* CARD).
*           THE MACRO *COMMA* ACTUALLY DOES THE WORK. 
  
  
1         IF     -DEF,#COMMA
 ,        MACRO  MNEMONIC 
          COMMA  MNEMONIC 
 ,        ENDM
 #COMMA   EQU    0
1         ENDIF 
  
          PURGMAC  COMMA
 COMMA    MACRO  MNEMONIC 
 #STATNUM SET    #STATNUM+1 
          IFEQ   FIXFLAG,1
 MNEMONIC EQU    #STATNUM+FIXEDOFF
          ELSE
 MNEMONIC EQU    #STATNUM 
          ENDIF 
 COMMA    ENDM
  
  
  
  
**        ; -  TERMINATE A STATUS LIST
* 
*         ;  #MAXVAL# 
* 
*         DROPS QUALIFICATION OF SYMBOLS. 
*         SYMBOL /STATNAME/#STATNUM IS THE VALUE OF THE LAST SYMBOL,
*           IF ANYONE IS INTERESTED.
  
  
 ;        MACRO  QHIVALQ
          IFC    NE,*QHIVALQ* * 
 M2       MICRO  1,,QHIVALQ 
          ERRPL  #STATNUM-"M2"-1
          ENDIF 
 ;        ENDM
  
  
 STATUS   ENDX
