*DECK CGABORT 
          PROC  CGABORT(MESS);
#**       CGABORT -  WRITE OUT DIAGNOSTIC WITH INFO FROM INTERPRETER
* 
*         CGABORT(MESS) 
* 
# 
  
          BEGIN 
          ITEM  MESS         C(10); 
  
          $BEGIN
  
*CALL M$
  
*CALL INT$
  
*CALL LISTCTL 
  
*CALL FIXCOM
  
*CALL FIXED 
  
*CALL RAPLUSC 
  
          XREF  PROC  CBLIST;          # PROCESS COBOL LIST FILE       #
          XREF  FUNC  DEC  C(10); 
          XREF  FUNC  OCT          C(20); 
  
          ITEM  LINE         C(80) = "CGABORT CALLED AT AAAAAAA+777777B 
OR 777777B IS *XXXXXXXXXX* AT LINE 999999     ";
          DEF  LINEMOD       #C<18,7>LINE#; 
          DEF  LINEMODOFF    #C<26,6>LINE#; 
          DEF  LINEADDR      #C<37,6>LINE#; 
          DEF  LINEMESS      #C<49,10>LINE#;
          DEF  LINELINE      #C<69,6>LINE#; 
  
          CBLIST(LISTCTL"OPEN");
          LINEMOD = C<0,7>RAPLUS[INT$MODADR]; 
          LINEMODOFF = OCT(INT$ADDR - INT$MODADR, 14, 6); 
          LINEADDR = OCT(INT$ADDR, 14, 6);
          LINEMESS = MESS;
          LINELINE = DEC(FIXEDCELL[FIXED"CURRLINE"]); 
          CBLIST(LISTCTL"LINE", LINE, 80);
          CBLIST(LISTCTL"CLOSE"); 
          RETURN; 
  
          $END
          END 
          TERM
