ASMB,R,Q,C
      HED .CLGF 91750-1X039 REV 2013 * (C) HEWLETT-PACKARD CO. 1980 
      NAM .CLGF,7 91750-1X039 REV.2013 800429 RTE-IVB W/S.M.
      SPC 1 
******************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980. ALL RIGHTS      *
*  * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,       *
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT*
*  * THE PRIOR WRITTEN CONSENT OF THE HEWLETT-PACKARD COMPANY.   *
******************************************************************
      SPC 1 
      ENT .CLGF 
* 
      EXT $DSCS,EXEC,$LGOF,LUSES
* 
* 
* NAME:   .CLGF 
* SOURCE: 91750-18039 
* RELOC:  PART OF 91750-12014 
* PGMR:   G.L.M.
* 
* 
*  PURPOSE: DO A LOG-OFF
*           RETURN A CLASS NUMBER FOR INTEGERATION OF RESULT. 
* 
* 
*  CALLING SEQUENCE: JSB .CLGF
*                    CONTROL WORD (BIT 15=DISMOUNT PRIVATE) 
*                                 (BIT 14=DISMOUNT GROUP) 
*                                 (BIT 13=KILL ACTIVE PROGS)
*                                 (BITS 7-0 = SESSION ID) 
* 
* 
*            RTN (A)-1= SESSION NOT INITIALIZED OR NOT INSTALLED
*            ELSE     = CLASS# TO FETCH RESULT
* 
*            NOTE: IF (A)=0 SCB NOT FOUND (ID WAS NOT CORRECT)
* 
* 
      SKP 
.CLGF NOP 
      XLA $DSCS     FETCH DISC POOL POINTER (UP\DOWN FLAG)
      SSA           IF NEGATIVE 
      JMP ERR1        WE CAN'T CONTINUE 
* 
      LDA .CLGF,I   FETCH CONTROL PARM
      AND B377      ISOLATE ID
      STA ID
* 
      JSB LUSES 
      DEF LURTN 
      DEF ID        FIND THIS SCB 
* 
LURTN SZA,RSS       IF NOT FOUND
      JMP ERR2       EXIT A=0 
      STA ID        SAVE FOR LOG-OFF CALL 
* 
* 
      XLA $LGOF     FETCH LGOFF CLASS # 
      SZA,RSS       IF NOT DEFINED
      JMP ERR1        SESSION NOT YET UP
* 
      IOR SAVC      . MAKE SURE THE CLASS # ISN'T RELEASED
      STA LGC       SAVE LGOFF CLASS NUMBER 
* 
*  MAKE SURE LGOFF EXISTS AND IS EXECUTING
* 
      JSB EXEC
      DEF EX.4
      DEF DS10
      DEF LGOFF 
EX.4  EQU * 
      NOP           POSSIBLE ERROR CONDITION
      CPB "05"      IF SCO5 ERROR 
      JMP ERR1        DON'T GO ANY FURTHER
* 
*  GET CLASS # FOR RESPONSE FROM LGOFF
* 
      CLA 
      STA CCLAS     FORCE ALLOCATION
* 
      JSB EXEC
      DEF EX1 
      DEF D18       CLASS WRITE 
      DEF NOP        LU 0 
      DEF * 
      DEF NOP           ZERO LENGTH TRANSFER
      DEF * 
      DEF * 
      DEF CCLAS           CLASS # RETURNED HERE 
EX1   EQU * 
* 
* 
* 
* 
*  ISSUE CLASS WRITE-READ TO LGOFF
* 
* 
* 
      JSB EXEC
      DEF EX3 
      DEF DS20      NO-ABORT CLASS WRITE-READ 
      DEF NOP       LU 0
      DEF CCLAS     BUFFER ADDR 
      DEF D1          LENGTH
      DEF .CLGF,I   IOP1= PASSED CONTROL PARM 
      DEF ID        SCB ADDR OF SESSION TO KILL 
      DEF LGC       LGOFF CLASS NUMBER
EX3   EQU * 
* 
      JMP ERR1      IF CLASS REQUEST REJECTED, BAD NEWS.
* 
* 
* 
*  MAKE SURE LGOFF IS EXECUTING 
* 
* 
      JSB EXEC
      DEF EX4 
      DEF DS10      NO-ABORT SCHED, NO QUEUE OR WAIT
      DEF LGOFF 
EX4   EQU * 
* 
      NOP           POSSIBLE ERROR RETURN 
* 
* 
      LDA CCLAS     RETURN COMMUNICATION CLASS
      IOR SAVC      SET SAVE CLASS BIT
      RSS 
ERR1  CCA           BAD STATE OF SESSION
ERR2  ISZ .CLGF     BUMP RTN
      JMP .CLGF,I 
* 
* 
LGOFF ASC 3,LGOFF 
B377  OCT 377 
DS10  OCT 100012
D1    DEC 1 
DS20  OCT 100024
NOP   NOP 
ID    NOP 
SAVC  OCT 20000 
CCLAS NOP 
LGC   NOP 
D18   DEC 18
"05"  ASC 1,05
      END 
                                                                                                                                                                          