ASMB
  HED PROGRAM STATUS: DORMANT ? (RTE-III/IV)  F. GAULLIER  18/JUL/77
      NAM DORMT,7 . 92903-16001 REV.1805  780112
* 
*     SOURCE 92903-18011
* 
      SPC 2 
**************************************************************
* (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978.  ALL RIGHTS    *
* RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- *
* PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH-  *
* OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.  *
**************************************************************
      SPC 2 
*     ********************************************************* 
*     * THIS LOGICAL FUNCTION WILL BE ".TRUE." IF THE PROGRAM * 
*     * IS ACTUALLY DORMANT [ CALL EXEC(6,0,0) ], OR UNLOADED * 
*     *  IF IT IS SCHEDULED, IN ANY WAITING LIST, OR HAS BEEN * 
*     * COMPLETED WITH THE "SAVE SUSPENSION POINT" OPTION :   * 
*     * [ CALL EXEC(6,0,1) ], THE LOGICAL FUNCTION WILL BE :  * 
*     * ".FALSE".                                             * 
*     ********************************************************* 
      SPC 2 
* 
*     CALLING SEQUENCE: 
* 
*        IF ( DORMT(PNAME) ) GOTO .. [PROG. IS DORMANT] 
* 
*     (.TRUE. = 100000B   AND   .FALSE. = 0)
* 
      SPC 2 
      ENT DORMT 
      EXT .ENTR,IDGET 
* 
A     EQU 0 
B     EQU 1 
* 
*-----ENTRY POINT 
* 
ANAME BSS 1 
DORMT NOP 
      JSB .ENTR 
      DEF ANAME     ADDRESS OF BUFFER CONTAINING PRG. NAME
* 
*-----GET I.D. SEGMENT ADDRESS
* 
      JSB IDGET 
      DEF *+2 
      DEF ANAME,I   PROGRAM NAME
      SZA,RSS       IS PROGRAM LOADED ? 
      JMP .TRUE     NO
* 
*-----VERIFY THAT PROGRAM IS FULLY DORMANT
* 
      LDB A         GET PROGRAM I.D. SEGMEMT ADDRESS
      ADB P12       COMPUTE PROGRAM NAME ADDRESS IN I.D.
      STB IDBDR     SAVE IT 
      ADB P2        (B)=NAM5 ADDR OF MATCHED I.D. 
      XLA B,I       GET NAM5 AND
      AND P7        MASK IN PROGRAM TYPE. 
      CPA P5        IS THIS A SEGMENT ? 
      JMP .TRUE     YES IT IS : EQUIVALENT TO DORMANT 
      ADB N6        (B)=ADDR OF SUSPEND WORD
      XLA B,I       POINT OF SUSPENSION ? 
      SZA           ZERO-CONTINUE 
      JMP .FALS     PROGRAM HAS A SUSPENSION POINT
      ADB P7        COMPUTE STATUS WORD ADDRESS 
      XLA B,I       GET STATUS WORD 
      SZA           DORMANT ? 
      JMP .FALS     PROGRAM IS NOT DORMANT
      ADB P2        COMPUTE TIME LIST WORD ADDRESS
      XLA B,I       GET TIME LIST WORD
      AND BIT12     GET BIT 12 OF (TIME LIST ENTRY BIT) 
      SZA           PROGRAM IS IN THE TIME LIST ? 
      JMP .FALS     YES 
* 
*-----PROGRAM IS FULLY DORMANT
* 
.TRUE CCA           LOGICAL FUNCTION ".TRUE." 
      JMP DORMT,I   RETURN
* 
*-----PROGRAM IS NOT FULLY DORMANT
* 
.FALS CLA           LOGICAL FUNCTION ".FALSE."
      JMP DORMT,I   RETURN
* 
*-----CONSTANTS 
* 
IDBDR BSS 1         NAM5 ADDRESS
P2    DEC 2 
P5    DEC 5 
P7    DEC 7 
P12   DEC 12
N6    DEC -6
BIT12 OCT 010000
* 
* 
* 
      END 
                  