*
* $Id: jobstp.s,v 1.1.1.1 1996/02/15 17:51:56 mclareni Exp $
*
* $Log: jobstp.s,v $
* Revision 1.1.1.1  1996/02/15 17:51:56  mclareni
* Kernlib
*
*
#if defined(CERNLIB_CERN)
         PRINT NOGEN
JOBSTP   CSECT
#if defined(CERNLIB_QMIBMXA)
JOBSTP   AMODE ANY
JOBSTP   RMODE ANY
#endif
*
* CERN PROGLIB#         JOBSTP          .VERSION KERNIBM  2.11  850320
* ORIG. 01/03/85  HRR
*
*
* THIS FORTRAN CALLABLE FUNCTION SUBROUTINE CAN BE USED TO TELL
* IF JOBSTOP IS NOW SET IN THE VIRTUAL MACHINE. THIS IS A MORE
* EFFICIENT METHOD FOR DOING THIS THAN CALLING THE JOBSTOP EXEC
* USING KMAND.
*
* FORTRAN CALLING SEQUENCE:  I=JOBSTP(N)
*
* WHERE: N IS IGNORED
*
*        I = INTEGER*4
*            0, JOB IS NOT REQUESTED TO STOP.
*            4, JOB IS REQUESTED TO STOP.
*
* DJOHNSON 05/02/84
*
         USING JOBSTP,R15               TEMPORARY ADDRESSABILITY
         B     JOBSTP0                  BYPASS IDENTIFICATION
         DC    XL1'7'                   ...
         DC    CL7'JOBSTP'              FOR STANDARD REPORTS
JOBSTP0  STM   R14,R12,12(R13)          SAVE CALLING REGISTERS
         LR    R12,R15                  BASE ADDRESS IN R12
         DROP  R15                      DROP TEMPORARY BASE
         USING JOBSTP,R12               PERMANENT BASE
         SR    R4,R4                    SET DEFAULT RETCODE
         ST    R4,RETCODE               ...
*--------------------------------------------------------------------
* - ISSUE CP VARIABLE QUERY JOBSTOP_COMMAND, AND LOOK AT RESPONSE
*--------------------------------------------------------------------
         LA    R4,CPCOM                 ADDRESS OF CP COMMAND
         LA    R6,L'CPCOM               LENGTH OF COMMAND
         ICM   R6,B'1000',=X'40'        WANT ANSWER IN BUFFER
         LA    R5,BUF                   RESPONSE BUFFER
         LA    R7,L'BUF                 LENGTH OF RESPONSE BUFFER
         DC    X'83460008'              CP CONSOLE FUNCTION DIAGNOSE
         CLC   YES,BUF                  ARE WE STOPPING?
         BNE   EXIT                     NO, RC=0
         MVC   RETCODE,=F'4'            YES, RC=4
*--------------------------------------------------------------------
* - RESTORE REGISTERS AND RETURN TO CALLER
*--------------------------------------------------------------------
EXIT     L     R14,12(,R13)             RESTORE REGISTER 14
         L     R0,RETCODE               GIVE BACK FUNCTION VALUE
         LM    R2,R12,28(R13)           RESTORE REGISTERS 2 THRU 12
         MVI   12(R13),X'FF'            INDICATE CONTROL RETURNED
         SR    R15,R15                  CLEAR R15
         BR    R14                      RETURN TO CALLER
*
*--------------------------------------------------------------------
* - DATA AREAS
*--------------------------------------------------------------------
RETCODE  DC    F'0'                     0 OR 4
YES      DC    C'JOBSTOP_COMMAND NOW '  YES ANSWER
BUF      DS    CL256                    CP COMMAND RESPONSE
CPCOM    DC    C'GVAR QUERY JOBSTOP_COMMAND' STOPPING?
         REGEQU
         END
#endif