ASMB HED PROGRAM STATUS: DORMANT ? (RTE-III/IV) F. GAULLIER 18/JUL/77 NAM DORMT,7 . 92080-1X011 REV.2026 800515 SPC 3 ********************************************************************** * * * NAME: DORMT CHECK STATUS OF A PROGRAM * * SOURCE: &DORMT 92080-18011 * * BINARY: %DORMT ----NONE--- PART OF %GPLB4 92080-16001 * * * * PGMR: FRANCOIS GAULLIER * * * ********************************************************************** 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 3 * ********************************************************* * * 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) * * OR * * REG = DORMT(PNAME,ISTAT) * * PNAME PROGRAM NAME * ISTAT PROG STATUS (IDSEG WORD 16) * RETURN VALUE INTO A REG. SPC 2 ENT DORMT EXT .ENTR,IDGET * A EQU 0 B EQU 1 SUP SPC 3 ANAME BSS 1 .STAT DEC 0 DORMT NOP JSB .ENTR DEF ANAME ADDRESS OF BUFFER CONTAINING PRG. NAME * CLA STA .STAT,I PRSET THE PROG STATUS TO 0 * *-----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 D14 (B)=NAM5/TYPE ADDR. (WORD 15) XLA B,I FETCH NAM5-TYPE AND P7 MASK IN PROGRAM TYPE. CPA P5 IS THIS A SEGMENT ? JMP .TRUE YES IT IS : EQUIVALENT TO DORMANT * INB STATUS WORD ADDR (WORD 16) XLA B,I FETCH STATUS WORD STA .STAT,I RETURN IT TO THE USER IF NEEDED SZA PROGRAM DORMANT JMP .FALS NO, RETURN FALSE VALUE * ADB DM7 (B)=ADDR OF SUSPEND WORD (WORD 9) XLA B,I FETCH XSUSP SZA XSUSP = 0 ? JMP .FALS YES, PROGRAM HAS A SUSPENSION POINT * ADB D9 COMPUTE TIME LIST WORD ADDRESS (WORD 18) 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 EXIT RETURN * *-----PROGRAM IS NOT FULLY DORMANT * .FALS CLA LOGICAL FUNCTION ".FALSE." EXIT CLB CLEAR THE OPTIONAL PARAM ADDR. STB .STAT FOR THE NEXT CALL JMP DORMT,I AND RETURN * *-----CONSTANTS * P5 DEC 5 P7 DEC 7 D9 DEC 9 D14 DEC 14 DM7 DEC -7 BIT12 OCT 10000 SPC 2 END