SPL,L,O ! NAME: EE.. ! SOURCE: 92067-18209 ! RELOC: 92067-16185 ! PGMR: G.A.A. ! ! *************************************************************** ! * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * ! * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * ! * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* ! * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * ! *************************************************************** ! NAME EE..(8) "92067-16185 REV.1903 790206" ! ! MODIFICATION RECORD: ! ! DATE REASON ! (1) 780720 TO SCHEDULE SESSION LOG-OFF, WITH OPTIONS ! (2) 781117 TO REQUIRE SP OR RP TO BE SPECIFIED FOR SESSION EXIT ! UNLESS SYSTEM MANAGER OR NO PRIVATES MOUNTED TO SESSION ! EE..: SUBROUTINE (N,LIS,ER) GLOBAL LET FM.ER,CLOS.,EXEC BE SUBROUTINE,EXTERNAL LET GTSCB,CLOSE BE SUBROUTINE,EXTERNAL LET CONV. BE SUBROUTINE,EXTERNAL LET .SETB BE SUBROUTINE,EXTERNAL,DIRECT LET CUSE.,CAD.,I.BUF BE INTEGER,EXTERNAL LET S.TTY,S.CAP BE INTEGER,EXTERNAL LET ACTV. BE INTEGER,EXTERNAL LET SM.BF BE INTEGER,EXTERNAL LET LGOFF(3) BE INTEGER LET L.SEG,ABX.. BE LABEL,EXTERNAL LET A BE CONSTANT(0) INITIALIZE LGOFF TO "LGOFF " ! KI_[RG_[RP_@LIS+1]+4]+4 P3_[P2_[P1_$1717K+12]+1]+1 !PROGRAM NAME IN ID SEGMENT ORIG_0 ASSEMBLE ["EXT $SMLK";"EXT $SMST";"EXT $SMDL";"EXT $SMID"] ASSEMBLE ["EXT $LGOF";"LDA $LGOF";"STA LGOF"] ASSEMBLE ["LDA $SMLK";"STA SMLK";"LDA $SMST";"STA SMST"] ASSEMBLE ["LDA $SMDL";"STA SMDL";"LDA $SMID";"STA SMID"] CALL GTSCB(SM.BF,144,IERR) !READ SESSION CONTROL BLK IF IERR > 0 THEN [ \IF IN SESSION, THEN IF $P1 = "FM" THEN [ \ IF ($P2 AND 177400K)=43400K THEN[\ ASCLU_(($P2 AND 377K) <- 8) OR ($P3 >-8); \ CONV.(S.TTY,ASLU2,2); \ IF ASCLU=ASLU2 THEN [ \ ORIG_1; \ EX.OP_SM.BF AND 377K; \SESSION ID TO LOW BYTE IF $RP="RP" THEN \BIT 15=DISMOUNT PRIVATES EX.OP_EX.OP OR 100000K, \ ELSE [ \ IFNOT LIS THEN [ \IF NO SP/RP PARAMETER PTR_@SM.BF-(SMLK+SMST); \ADDRESS OF SST LENGTH WORD IF $(PTR+SMID)=7777K THEN \IF SYSTEM MANAGER, THEN GO TO EE1; \ LIMIT_$(PTR+SMDL); \CONTENTS OF DISC LIMIT WORD CTRAD_PTR-$PTR+1; \ADDRESS OF DISC COUNTER WORD REPEAT LIMIT TIMES DO \CHECK EACH DISC FOR BIT 14 [IFNOT $[CTRAD_CTRAD+1] AND 40000K \(0 IF PRIVATE) THEN [IF $CTRAD THEN \IF NOT A SPARE & BIT 14=0, GO TO ER71]]], \ERROR 71 - MUST SAY SP/RP ELSE [IFNOT $RP="SP" THEN \IF NEITHER SP NOR RP, THEN [ER_56;RETURN]]]; \BAD PARAMETER ERROR EE1: IF $RG="RG" THEN \BIT 14=DISMOUNT GROUP DISCS EX.OP_EX.OP OR 40000K; \ IF $KI="KI" THEN \BIT 13=KILL PROGRAMS EX.OP_EX.OP OR 20000K]]]] ! IF ACTV. THEN GO TO ABX.. ENDMS_@CUSE.-5 FM.ER(0,$ENDMS,5) CLOS.($0) EXEC (5,-1) IF $P1 = "FM" THEN [ \IF "FMGR" IF $P2 = "GR" THEN [ \ IF ($P3 AND 177400K) = 20000K THEN \ [CAD._0;CUSE._"77";GOTO L.SEG]]] !1ST IN SEG.7 (NX.JB) CLOSE(I.BUF) IFNOT S.CAP THEN GO TO DONE IFNOT ORIG THEN GO TO DONE $A_S.TTY CALL .SETB !DISABLE TERMINAL EXEC(100012K,LGOFF) !SCHEDULE LGOFF GO TO CLSRW CLSRW:EXEC(20,0,0,0,EX.OP,$($1717K+32),LGOF) !LOG-OFF OPTIONS DONE: CALL EXEC(6) ER71: ER_71 !NOT SPECIFIED, ERROR 71 RETURN END END END$