*DECK     XTRACE
          IDENT  XTRACE 
          ENTRY  XTRACE 
          SST 
          TITLE  TRACE
*#
*1DC  XTRACE
* 
*     1. PROC NAME           AUTHOR              DATE 
*        XTRACE              J. J. LYON          75/10/02 
* 
*     2. FUNCTIONAL DESCRIPTION.
*        THIS ROUTINE IS RESPONSIBLE FOR PUTTING THE ADDRESS OF THE 
*        CALLING ROUTINE IN THE TRACE-TABLE.
* 
*     3. METHOD USED. 
*          A CIRCULAR BUFFER OF CALLER-S ADDRESSES IS UPDATED 
* 
*     4. ENTRY PARAMETERS.
*           ENTRY/EXIT LOCATION CONTAINS CALLER-S ADDRESS(BITS 47-30) 
* 
*     5. EXIT PARAMETERS.  NONE 
* 
*     6. COMDECKS CALLED. 
*          INPARU  MACDEF 
* 
*     7. ROUTINES CALLED.  NONE 
* 
*     8. DAYFILE MESSAGES.  NONE
* 
*#
*CALL MACDEF
*CALL INPARU
          IFEQ   DEBUG,1
 FIRST    VFD    60/TBUFF 
 IN       VFD    60/TBUFF 
 OUT      VFD    60/TBUFF 
 LIMIT    VFD    60/TBUFFL
 TBUFF    BSSZ   128
 TBUFFL   BSSZ   1
 XTRACE   BSSZ   1           ENTRY/EXIT 
          SA1    X1          NAME OF ROUTINE
          LX1    30 
          MX0    30          MASKING UPPER 30 BITS
          BX1    -X0*X1      BOTTOM 30 BITS OF NAME WORD
          SA5    XTRACE 
          BX6    X5+X1       X6 = ADDRESS AND NAME OF CALLER
          SA4    IN 
          SA6    X4          PUT CALLER ADDRESS IN TABLE(IN)
          SX7    X4+1        ADD 1 TO IN
          SA5    LIMIT
          IX6    X5-X7
          ZR     X6,T02      JIF IN = LIMIT 
          SA7    IN 
          EQ     XTRACE 
 T02      SA5    FIRST       IF IN = LIMIT THEN 
          BX6    X5            SET IN = FIRST 
          SA6    IN 
          EQ     XTRACE      RETURN 
          ELSE
XTRACE    BSSZ   1
          EQ     XTRACE 
          ENDIF 
          END 
