*COMDECK  FMACDEF 
 FMACDEF  CTEXT  FMACDEF - MACRO FORMATION MACROS 
**        FMACDEF - MACRO DEFINITIONS TO CALL THE COMPS MACOUT ROUTINES.
*         THE FOLLOWING MACROS ARE USED TO OUTPUT MACRO CALLS TO THE
*         COMPS FILE. 
*         FOR FURTHER INFORMATION ONE SHOULD CONSULT THE SUBROUTINES
*         "SVARG" , "FMAC" AND F1AMAC" .
* 
  
 INTARG   MACRO                    INITIALIZE NUMBER OF ARGS
          SB7    B0 
          ENDM
  
 SVARG    MACRO  TYPE,ARGNUM       SAVE A MACRO ARGUMENT ( IN X6 )
*                                  USES X6,X7,B6,B7 AND A6
          SB6    "F_TYPE" 
          PX6    B6,X6
          SB6    ARGNUM 
          RJ     =XSVARG
          ENDM
  
 FNAME    MICRO  1,,/B0/           TABLE OF POSSIBLE TYPE CODES 
 FOCT     MICRO  1,,/B5/           OCTAL CONVERSION 
 FINT     MICRO  1,,/B5+B5/        INTEGER CONVERSION - 1 DIGIT ONLY
 FCHAR    MICRO  1,,/3/            CHARACTER STRING 
 FNAMEL   MICRO  1,,/4/      ACTUAL NAME, I.E., OVERIDE IAF FLAG WHICH
*                            WOULD FORCE FORMATION OF ?SYMBOL 
  
 NARGS=   MACRO  SUM               SAVE TOTAL NUMBER OF ARGS FOR FMAC 
          SX7    -SUM 
          SA7    NARGS
          ENDM
  
 FMAC     MACRO  MACNAME
          IFC    NE,//MACNAME/,1
          SA1    =10H  MACNAME
          RJ     =XFMAC 
          ENDM
  
 F1AMAC   MACRO  MACNAME           FORM AND OUTPUT A 1 ARG MACRO CALL 
*                                  ARGUMENT IS ASSUMED TO BE A NAME 
*                                  FROM SYMTAB
          SA1    =10H  MACNAME
          RJ     =XF1AMAC 
          ENDM
          SPACE  3
*         LOCATIONS USED BY "SVARG" TO SAVE THE MACRO CALLS 
*         AND "FMAC" TO FORMAT THEM 
  
          USE    /MACBUF/ 
 NARGS                             NUMBER OF ARGS 
 MBUF     BSSZ   1                 MACRO OUTPUT BUFFER
  
 ABUF     BSSZ   10                ARGUMENT BUFFER
          USE    *
          ENDX
