*DECK C$STOPR 
          IDENT C$STOPR 
          COMMENT  C$STOPR - PROCESS STOP RUN STATEMENTS
          TITLE  C$STOPR - PROCESS STOP RUN STATEMENTS
          SST 
**        C.STOPR - PROCESS STOP RUN STATEMENTS.
* 
*         CALLING SEQUENCE: 
* 
*                RJ     C.STOPR 
* 
*         DOES: 
* 
*              CALL C.STOP2 FOR MCS STOP RUN REQUEST IF APPLICABLE
*              ISSUES AN *ENDRUN* SYSTEM REQUEST. 
* 
*         USES:  ALL REGISTERS EXCEPT B1, B2, B3, A0, X0, X5. 
  
  
          ENTRY  C.STOPR
          ENTRY  C.DBEND
 C.STOPR  DATA   0           ENTRY/EXIT 
          SB2    =YDBUG.FN
          PL     B2,CID1     CID ACTIVE 
          RJ    C.DBEND 
 CID1     ENDRUN
  
 C.DBEND  DATA   0           ALSO ENTERED BY CID AFTER ENDRUN 
          SA1    =XC.LIBNM   GET LIBRARY NAME 
          ZR     X1,C.DBEND  EXIT IF COBOL NEVER INITIALIZED
 TAF      IFEQ   OP.TAF,OP.NO 
          RJ     =XC.CLOSF   CLOSE ALL FILES
 TAF      ELSE
          SB2    =YC.CLOSF
          NG     B2,TAFTSK
          RJ     =YC.CLOSF
 TAFTSK   BSS    0
 TAF      ENDIF 
 TAF1     IFEQ   OP.TAF,OP.NO 
          SB2    =YDBUG.FN
          PL     B2,NOCID1   JP IF CID ACTIVE 
          RECOVR =YC.TDUMP,0
 NOCID1   BSS    0
 TAF1     ENDIF 
          SB1    1
          SB3    =YC.TDUMP
          NG     B3,NOTDUMP 
          RJ     =YC.TDUMP
 NOTDUMP  BSS    0
          SB3    =YC.STPTR
          NG     B3,NOTRACE 
          SA4    STPTRJP
          SA3    C.STOPR
          ZR     X3,STPTRJP  JP IF C.STOPR NOT CALLED (RUN IS ABORTED)
          LX3    30 
          SA2    X3-1        PICK UP C.STOPR CALL FROM COBOL PROGRAM
          MX0    30 
          BX6    X0*X4       MASK OUT GARBAGE IN LOWER HALF 
          BX3    -X0*X2      MASK OUT LINE NUMBER 
          BX6    X6+X3       STORE LINE NO IN LOWER HALF OF C.STPTR CALL
          SA6    A4 
 STPTRJP  RJ     =YC.STPTR
 NOTRACE  BSS    0
          SB2    =YC.STOP2
          NG     B2,NOMCS 
          SX1    11B         STOP RUN REQUEST FOR MCS 
          RJ     =YC.STOP2
 NOMCS    BSS    0
          RJ     =XC.CLSTK   CLEAR PROGRAM NAME STACK 
          SA4    =XC.JTFLG   GET JOB TERMINATION FLAG TIMEF 
          SA5    A4+B1       GET COREF
          BX4    X4+X5
          NZ     X4,LODTERM  JP IF TERMINATION MESSAGES WANTED
          EQ     C.DBEND
 LODTERM  BSS    0
          SB2    LIBLIST
          SB3    TERM+"PL.ADDR" 
          SX4    PLOCADD
          EQ     =YC.LDCAP   GO LOAD IT 
*     RETURNS TO C.DBEND
 LIBLIST  DATA   0,0
 GRPNAM   VFD    42/0LCOBOL5,18/5 
 CAPNAM   VFD    42/0LC$TERM,18/0 
 PLOCADD  VFD    42/0,18/PLOC 
          DATA   0
 PLOC     PASSLOC 
          PL.ENTRY  CMM.AUS,WEXT
          PL.ENTRY  CMM.ICM,WEXT
          PL.ENTRY C.DBEND
          PL.ENTRY  C.JTFLG,EXT 
 TERM     PL.ENTRY  C.TERM
          PL.ENTRY  C.ZEROS,EXT 
          PL.ENTRY  DBUG.FN,WEXT
          PL.ENTRY  MSG=,EXT
          PL.ENTRY  SYS=,EXT
          PL.END
          END 
