ASMB,R,L,C
      HED "LOGOF" PROGRAM LOGOF PROCEDURE 10-76 (DLB) 
*     NAM LOGOF,3,99 09570-16655 REV. A 761013
*     NAM LOGOF,2,50 09570-16655 REV. A 761110
      NAM LOGOF,1,40 PRE-REL 780515 (DLB) (RTE-IV) 15:40
      EXT EXEC,CLAS#,$LIBR,$LIBX
      EXT IDSGA,GTLU#,.XLA
      EXT GTSTB,ICLRW 
A     EQU 0 
B     EQU 1 
* 
      SPC 1 
*-------------------------------------------------------- 
* 
*     RELOC.       09570-16655
*     SOURCE       09570-18655
* 
*     D. L. BASKINS      13 OCT 76 REV. A 
* 
*-------------------------------------------------------- 
      SPC 1 
*  TEST PROGRAM:
*FTN,L
*      PROGRAM TEST 
*      DIMENSION LOGOF(3) 
*      DATA LOGOF/2HLO,2HGO,2HF / 
*      LU = ITMLU(IBATCH) 
*      WRITE (LU,100) 
*  100 FORMAT ("THIS PROGRAM IS GOING TO DO A LOGOF") 
*      CALL EXEC (23+100000B,LOGOF) 
*      GO TO 9999 
* 9998 STOP 11
* 9999 END
*      END$ 
      SPC 1 
LOGOF NOP           ENTRY WITH NO PARAMETERS, NO RETURN 
      JSB EXEC
      DEF *+3 
      DEF D22 
      DEF O2
      JSB GTLU#     FIND OUT THE LOGICAL UNIT OF TERMINAL 
      STA LU
      SZA,RSS       CHECK IF FOUND? 
      JMP EXIT      NO, JUST TERMINATE
      LDA CLASS     GET CLASS NUMBER ADDRESS
      SZA,RSS       CHECK IF ONE? 
      JMP EXIT      NO, SKIP
      RSS           NOW MAKE A DIRECT ADDRESS 
      LDA A,I       GET NEXT LEVEL
      RAL,CLE,SLA,ERA 
      JMP *-2 
      STA CLASS 
      JSB GTSTB     GO FIND IF THERE IS A SESSION TABLE 
      DEF *+4       ENTRY?
      DEF LU
      DEF PNAME 
      DEF SYSAD     ADDRESS OF ENTRY IN SESSION TABLE 
      SSA           CHECK IF TERMINAL IS BUSY?
      JMP EXIT      YES, IGNORE REQUEST 
      JSB IDSGA     FIND OUT IF PROGENITOR EXISTS 
      DEF *+2 
      DEF PNAME     NAME OF PROGENITOR
      SZA,RSS 
      JMP EXIT      NO, JUST CALL EXEC (6 
      LDB SYSAD     CHECK IF TABLE ENTRY EXISTS 
      CCE,SZB,RSS 
      JMP EXIT      NO, SKIP LOGOF
      JSB $LIBR     NOW SET THE DISABLE TERMINAL BIT
      NOP 
      JSB .XLA
      DEF B,I 
      RAL,ERA       SET BIT 15
      JSB .XLA
      DEF B,I 
      JSB $LIBX 
      DEF *+1 
      DEF *+1 
      SPC 1 
      JSB ICLRW 
      DEF *+7 
      DEF O0        SEND "LOGOF" TO R$PN$ 
      DEF CLASS 
      DEF LU
      DEF SYSAD     ENTRY INTO THE SESSION TABLE
      DEF LOGO
      DEF OM4       FOUR CHARACTERS 
      JSB EXEC      SCHEDULE R$PN$ W/O WAIT 
      DEF *+3 
      DEF D10 
      DEF R$PN$ 
      SPC 1 
EXIT  JSB EXEC      TERMINATE 
      DEF *+4 
      DEF O6          & 
      DEF O0        SERIAL RE-USABLE
      DEF OM1 
      SPC 1 
LU    NOP 
O0    OCT 0 
OM1   OCT -1
OM4   OCT -4
O2    OCT 2 
O6    DEC 6 
D22   DEC 22
D10   DEC 10
R$PN$ ASC 3,R$PN$ 
LOGO  ASC 2,LOGOF 
CLASS DEF CLAS#+0 
SYSAD NOP           SYSTEM MAP ADDRESS OF SESSION TABLE ENTRY 
PNAME BSS 8 
      ORR 
      END LOGOF 
                                                                                                