*DECK TDCMM 
          IDENT  TDCMM
          TITLE  TDCMM - *CMM* INTERFACE FOR TERMINAL DUMP ANALYZER.
  
          MACHINE  ANY,I
          COMMENT  *CMM* INTERFACE FOR TDA. 
          SST 
          B1=1
          SPACE  4
**        *************************************************** 
*         * TDCMM - *SYMPL* INTERFACE ROUTINE FOR CMM CALLS * 
*         *************************************************** 
* 
* 
*              THIS ROUTINE IS SIMILAR TO THE COMPILER ROUTINE
*         *CMM$SYP*, EXCEPT THIS ONE IS USED AT OBJECT TIME.  IT WAS
*         ORIGINALLY USED BY THE TERMINAL DUMP ANALYZER.
          SPACE  2
**        CMM$ALF - ALLOCATE FIXED BLOCK. 
* 
*                FUNC CMM$ALF;
*                P<BLK>=CMM$ALF(SIZE,SC,GID); 
  
          ENTRY  CMM$ALF
 CMM$ALF  EQ     *+1S17      ENTRY / EXIT 
          SB1    1
          SA2    X1          (X2) = BLOCK-SIZE
          MX6    -6 
          SA3    A1+B1       GET SIZE-CODE
          SA4    X3 
          BX3    -X6*X4 
          LX3    6           (X3), BITS 11-6 = SIZE-CODE
          SA4    A3+B1       GET GROUP-ID 
          SA4    X4 
          MX5    -17
          BX5    -X5*X4 
          LX5    12 
          BX3    X5+X3       (X3), BITS 28-12 = GROUP-ID
          RJ     =XCMM.ALF
          SX6    X1          RETURN, (X6) = BLOCK-FWA 
          EQ     CMM$ALF
          SPACE  2
**        CMM$CSF - CHANGE FIXED BLOCK SPECS. 
* 
*                PROC CMM$CSF;
*                CMM$CSF(BLK,NEWSC);
  
          ENTRY  CMM$CSF
 CMM$CSF  EQ     *+1S17      ENTRY / EXIT 
          SA2    A1+1        (X2) = NEW-SIZE-CODE 
                             (X1) = BLOCK-FWA 
          SA2    X2 
          RJ     =XCMM.CSF
          EQ     CMM$CSF     RETURN 
          SPACE  2
**        CMM$FRF - FREE FIXED BLOCK. 
* 
*                PROC CMM$FRF;
*                CMM$FRF(BLK);
  
          ENTRY  CMM$FRF
 CMM$FRF  EQ     *+1S17      ENTRY / EXIT 
                             (X1) = BLOCK-FWA 
          RJ     =XCMM.FRF
          EQ     CMM$FRF     RETURN 
          SPACE  2
**        CMM$GLF - GROW FIXED BLOCK AT LWA.
* 
*                PROC CMM$GLF;
*                CMM$GLF(BLK,INCR); 
  
          ENTRY  CMM$GLF
 CMM$GLF  EQ     *+1S17      ENTRY / EXIT 
          SA2    A1+1        (X2) = INCREASE
                             (X1) = BLOCK-FWA 
          SA2    X2 
          RJ     =XCMM.GLF
          EQ     CMM$GLF     RETURN 
          SPACE  2
**        CMM$SLF - SHRINK FIXED BLOCK AT LWA.
* 
*                PROC CMM$SLF;
*                CMM$SLF(BLK,DECR); 
  
          ENTRY  CMM$SLF
 CMM$SLF  EQ     *+1S17      ENTRY / EXIT 
          SA2    A1+1        (X2) = DECREASE
                             (X1) = BLOCK-FWA 
          SA2    X2 
          RJ     =XCMM.SLF
          EQ     CMM$SLF     RETURN 
  
          END 
